22// Licensed under the MIT License.
33
44using FluentValidation ;
5- using Newtonsoft . Json ;
6- using Newtonsoft . Json . Linq ;
75using RulesEngine . Actions ;
86using RulesEngine . Exceptions ;
97using RulesEngine . ExpressionBuilders ;
2018
2119namespace RulesEngine
2220{
21+ using System . Text . Json ;
22+ using System . Text . Json . Nodes ;
23+
2324 /// <summary>
2425 ///
2526 /// </summary>
26- /// <seealso cref="RulesEngine.Interfaces. IRulesEngine" />
27+ /// <seealso cref="IRulesEngine" />
2728 public class RulesEngine : IRulesEngine
2829 {
2930 #region Variables
@@ -38,7 +39,7 @@ public class RulesEngine : IRulesEngine
3839 #region Constructor
3940 public RulesEngine ( string [ ] jsonConfig , ReSettings reSettings = null ) : this ( reSettings )
4041 {
41- var workflow = jsonConfig . Select ( item => JsonConvert . DeserializeObject < Workflow > ( item ) ) . ToArray ( ) ;
42+ var workflow = jsonConfig . Select ( item => JsonSerializer . Deserialize < Workflow > ( item ) ) . ToArray ( ) ;
4243 AddWorkflow ( workflow ) ;
4344 }
4445
@@ -403,7 +404,7 @@ private IEnumerable<RuleResultTree> FormatErrorMessages(IEnumerable<RuleResultTr
403404 {
404405 var arrParams = inputs ? . Select ( c => new { Name = c . Key , c . Value } ) ;
405406 var model = arrParams ? . Where ( a => string . Equals ( a . Name , property ) ) ? . FirstOrDefault ( ) ;
406- var value = model ? . Value != null ? JsonConvert . SerializeObject ( model ? . Value ) : null ;
407+ var value = model ? . Value != null ? JsonSerializer . Serialize ( model ? . Value ) : null ;
407408 errorMessage = errorMessage ? . Replace ( $ "$({ property } )", value ?? $ "$({ property } )") ;
408409 }
409410 }
@@ -430,10 +431,10 @@ private static string UpdateErrorMessage(string errorMessage, IDictionary<string
430431 var model = arrParams ? . Where ( a => string . Equals ( a . Name , typeName ) ) ? . FirstOrDefault ( ) ;
431432 if ( model != null )
432433 {
433- var modelJson = JsonConvert . SerializeObject ( model ? . Value ) ;
434- var jObj = JObject . Parse ( modelJson ) ;
435- JToken jToken = null ;
436- var val = jObj ? . TryGetValue ( propertyName , StringComparison . OrdinalIgnoreCase , out jToken ) ;
434+ var modelJson = JsonSerializer . Serialize ( model ? . Value ) ;
435+ var jObj = JsonObject . Parse ( modelJson ) . AsObject ( ) ;
436+ JsonNode jToken = null ;
437+ var val = jObj ? . TryGetPropertyValue ( propertyName , out jToken ) ;
437438 errorMessage = errorMessage . Replace ( $ "$({ property } )", jToken != null ? jToken ? . ToString ( ) : $ "({ property } )") ;
438439 }
439440
0 commit comments