• 浅谈json(二)


        Newtonsoft.Json,一款.NET中开源的Json序列化和反序列化类库(下载地址http://json.codeplex.com/)。

             下面是Json序列化和反序列化的简单封装:

     View Code

             为进一步理解Newtonsoft,写了一些测试的例子:

     View Code

             使用Json帮助类时,有两点需要注意下:

             1. 通常使用调用实体序列化SerializeObject()和反序列化DeserializeJsonToObject()两个方法就可以了。但有些情况下我们解析json字符串时,可能没有对应的实体类型(或者说不想添加对应的实体类),这时候可以用匿名对象解析方法DeserializeAnonymousType(),方便快捷,对应代码如下:

    复制代码
                //匿名对象解析
                var tempEntity = new { ID = 0, Name = string.Empty };
                string json5 = JsonHelper.SerializeObject(tempEntity);
                //json5 : {"ID":0,"Name":""}
                tempEntity = JsonHelper.DeserializeAnonymousType("{"ID":"112","Name":"石子儿"}", tempEntity);
                Console.WriteLine(tempEntity.ID + ":" + tempEntity.Name);
    复制代码

             2. Json的两种结构数组和对象解析时略有不同。Json对象一般转换成实体,Json数组一般转换成实体集合。代码如下:

                //验证对象和数组
                Student sdudent4 = JsonHelper.DeserializeJsonToObject<Student>("{"ID":"112","Name":"石子儿"}");
                List<Student> sdudentList4 = JsonHelper.DeserializeJsonToList<Student>("[{"ID":"112","Name":"石子儿"}]");

             简单解释下Json对象和数组的含义:

             对象是以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间运用 “,”(逗号)分隔。名称用引号括起来;值如果是字符串则必须用括号,数值型则不须要。例如:{"ID":"112","Name":"石子儿"}。

             数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间运用 “,”(逗号)分隔。例如:[{"ID":"112","Name":"石子儿"},{"ID":"113","Name":"陈晨"}]。

     
  • 相关阅读:
    List of the best open source software applications
    Owin对Asp.net Web的扩展
    NSwag给api加上说明
    'workspace' in VS Code
    unable to find valid certification path to requested target
    JMeter的下载以及安装使用
    exception disappear when forgot to await an async method
    Filter execute order in asp.net web api
    记录web api的request以及response(即写log)
    asp.net web api的源码
  • 原文地址:https://www.cnblogs.com/diviner926934/p/7025985.html
Copyright © 2020-2023  润新知