• C# Json数组序列化和反序列总结


    1、创建json数组,例:
    JArray arrFile = new JArray();
    arrFile.Add(new JObject() { 
                                            new JProperty("FilePath",jArray[i]["FilePath"].ToString()),//文件路径
                                            new JProperty("FileName",jArray[i]["FileName"].ToString()),//文件名
                                            new JProperty("Type",jArray[i]["Type"].ToString()),//文件类型
                                            new JProperty("IsDirectory",jArray[i]["IsDirectory"].ToString()),//是否文件夹
                                            new JProperty("ParentNode",jArray[i]["ParentNode"].ToString()),//文件夹路径
                                            new JProperty("Date",jArray[i]["Date"].ToString()),//日期
                                        });
    2、Json序列化
     一、例:
    简单对象Person:
    public class Person
     {
         public string Name { get; set; }
         public int Age { get; set; }
     }

    序列化为JSON字符串:

    protected void Page_Load(object sender, EventArgs e)
     {
         Person p = new Person();
         p.Name = "张三";
         p.Age = 28;
    
         string jsonString = JsonHelper.JsonSerializer<Person>(p);
         Response.Write(jsonString);
     }

    输出结果:

    {"Age":28,"Name":"张三"} 

     二、例:

    非数组格式用JObject加载:

    string jsonText = "{"a":"aaa","b":"bbb","c":"ccc"}"; 
    //"{'a':'aaa','b':'bbb','c':'ccc'}";   
    var mJObj = JObject.Parse(jsonText);

    数组格式用JArray加载:

    string jsonText1 = "[{'a':'aaa','b':'bbb','c':'ccc'},{'a':'aa','b':'bb','c':'cc'}]"; 
     //"[{"a":"aaa","b":"bbb","c":"ccc"},{"a":"aa","b":"bb","c":"cc"}]";
     var mJObj1 = JArray.Parse(jsonText1);

    3、反序列化Demo:

    protected void Page_Load(object sender, EventArgs e)
     {
         string jsonString = "{"Age":28,"Name":"张三"}";
         Person p = JsonHelper.JsonDeserialize<Person>(jsonString);
     }

     ASP.NET中的JSON序列化和反序列化还可以使用JavaScriptSerializer,在System.Web.Script.Serializatioin命名空间下,需引用System.Web.Extensions.dll.也可以使用JSON.NET.


    4、读取json数组中特定的参数值
    //读取json数组中特定的参数值
    string readStream = sr.ReadToEnd();
    JArray jArray = (JArray)JsonConvert.DeserializeObject(readStream);
    if (jArray.Count>0)
    {
      for (int i = 0; i < jArray.Count; i++)
       {
         string str = jArray[i]["FilePath"].ToString();
       } 
    }

     5、Json字符串解析

    Json字符串普通格式解析(常用):

    string jsonText = "{"zone":"海淀","zone_en":"haidian"}";
    JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
    string zone = jo["zone"].ToString();
    string zone_en = jo["zone_en"].ToString();

    Json字符串嵌套格式解析:

    string jsonText = "{"beijing":{"zone":"海淀","zone_en":"haidian"}}";
    JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
    string zone = jo["beijing"]["zone"].ToString();
    string zone_en = jo["beijing"]["zone_en"].ToString();

    Json字符串数组格式解析

    string jsonArrayText = "[{'a':'a1','b':'b1'},{'a':'a2','b':'b2'}]"; //"[{'a':'a1','b':'b1'}]即使只有一个元素,也需要加上[]
    string jsonArrayText = "[{"a":"a1","b":"b1"},{"a":"a2","b":"b2"}]";  //上面写法和此写法效果一样
    JArray jArray = (JArray)JsonConvert.DeserializeObject(jsonArrayText);//jsonArrayText必须是带[]数组格式字符串
    string str = jArray[0]["a"].ToString();
  • 相关阅读:
    Twitter如何在数千台服务器上快速部署代码?
    系统架构师学习笔记_第六章(上)_连载
    使用IIS内置压缩功能,增加网站访问速度
    系统架构师学习笔记_第八章_连载
    微软企业库4.1学习笔记(十五)缓存模块3 使用数据库作为后端存储
    快速搞懂 SQL Server 的锁定和阻塞
    微软企业库4.1学习笔记(十四)缓存模块2 使用缓存模块进行开发
    微软企业库4.1学习笔记(十六)缓存模块4 服务器场中的缓存使用
    Agile PLM Engineering Collaboration
    EC Client Customizing EC Client 客户化
  • 原文地址:https://www.cnblogs.com/lijianda/p/7652134.html
Copyright © 2020-2023  润新知