using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Controls; namespace Tango.HardwareVersionComparison.ValidationRules { public class JsonValidationText : ValidationRule { public override ValidationResult Validate(object value, CultureInfo cultureInfo) { if (!String.IsNullOrEmpty(value.ToString())) { try { var tmpObj = JContainer.Parse(value.ToString()); } catch (FormatException fex) { return new ValidationResult(false, "Value is not a valid json string."); } catch (Exception ex) //some other exception { return new ValidationResult(false, $"Value is not a valid json string. Exception: \n{ex.ToString()}"); } } return ValidationResult.ValidResult; } } }