有关json字符串与实业之间的残酷验证【美高梅

作者:编程技术

                JObject person = JObject.Parse(Json); 

        }

       public DateTime CreateDate { get; set; }  

JsonConvert.DeserializeObject<Account>(Json, new JsonSerializerSettings

    {

 

 

                'CreateDate':'2015-12-11 9:24:33'

                IList<string> messages;

            args.ErrorContext.Handled = true;

            {

 public static void eventHandler(object sender, ErrorEventArgs args)

*/

 using System; 

            Console.WriteLine(currentError);

                {

                    {

实体类

        {

 

                'Email':'58',  

                {

                        Console.WriteLine(message); 

/*

                else

            var currentError = args.ErrorContext.Error.Message;

                if (!valid)

            {

 string Json = @"{  

}

                }

                    foreach (string message in messages)

    }

 

 

 

            }

            Console.Read();

主函数调用

 private static void Main(string[] args)

        public string Email { get; set; }

        public bool Active { get; set; }

            }";

            catch (JsonSerializationException ex)

    public class Account

                Console.WriteLine(ex.Message);

在一个项目中要求严格验证传入的json字符串与定义的 类匹配,否则不记录。感觉这个严格验证找了好多资料才找到,可能用的人比较少,特摘出来给大家分析,直接上代码了:

            try

 

                }

                bool valid = person.IsValid(schema, out messages);

 

              {

                  MissingMemberHandling = MissingMemberHandling.Error,

                'Active':true,  

                    Console.WriteLine("OK"); 

using Newtonsoft.Json;

                /*这里是通过指定的实体创建一个规则来验证传入的json是否符合要求*/

 

                JSchema schema = generator.Generate(typeof(Account)); 

 {

 

                    }

 

这段代码的也是设置捕获异常的,只是大范围的验证,如果匹配不上则给予默认值。上面的是严格判断

首先引用 Newtonsoft.Json.Schema

            }

              });

               JSchemaGenerator generator = new JSchemaGenerator(); 

                  Error = eventHandler 

本文由分分快三计划发布,转载请注明来源

关键词: