• JSON字符串序列化与反序列化浅试


    一、添加引用(using Newtonsoft.Json.Linq;)

    二、

    1.生成json字符串源码

     1 List<string> list = new List<string>();
     2             list.Add("11111");
     3             list.Add("22222");
     4             list.Add("33333");
     5             list.Add("44444");
     6             list.Add("55555");
     7 
     8             JObject obj1 = new JObject();
     9             JArray array = new JArray();
    10             JObject objdatas = null;
    11 
    12             for (int i = 0; i < 2; i++)//第一层
    13             {
    14                 objdatas = new JObject();
    15                 JObject obj2 = null;
    16                 JObject obj3 = new JObject();
    17                 for (int j= 0; j < list.Count; j++)
    18                 {
    19                     obj2 = new JObject();
    20                     obj2.Add(new JProperty("数据" + (j + 1).ToString() + "", list[j]));
    21                     obj3.Add(""+(j+1).ToString()+"小层",obj2);
    22                 }
    23                 objdatas.Add(new JProperty("" + (i + 1).ToString() + "", obj3));
    24                 array.Add(objdatas);
    25             }
    26             obj1.Add("datas", array);
    27             JObject objEnd = new JObject();
    28             objEnd.Add("Datas",obj1);
    29 
    30 
    31             txtdata.Text = objEnd.ToString();
    View Code

    2.得到的json字符串示例

    三、反序列化json数据

     1 JObject obj = JObject.Parse(strJson);
     2             JToken tok = obj["Datas"];
     3             JObject objdata = JObject.Parse(tok.ToString());
     4             JToken tokdatas = null;
     5             StringBuilder txt = new StringBuilder();
     6             for (int i = 0; i < objdata["datas"].Count(); i++)
     7             {
     8                 tokdatas = objdata["datas"][i];
     9                 foreach (JProperty item in tokdatas)
    10                 {
    11                     txt.Append("" + (i + 1).ToString() + "条数据:");
    12                     txt.Append(item.Value["第1小层"]["数据1"].ToString() + "&&");
    13                     txt.Append(item.Value["第2小层"]["数据2"].ToString() + "&&");
    14                     txt.Append(item.Value["第3小层"]["数据3"].ToString() + "&&");
    15                     txt.Append(item.Value["第4小层"]["数据4"].ToString() + "&&");
    16                     txt.Append(item.Value["第5小层"]["数据5"].ToString());
    17                 }
    18             }
    View Code
  • 相关阅读:
    Java中的BoneCP数据库连接池用法
    css 属性选择器笔记
    px,em,rem的区别
    谈谈newDate()的简单使用 JS
    user-select属性用法
    闭包解决的问题
    jQuery 中position()与offset()的区别
    attr() VS prop()
    .toArray()与jQuery.makeArray()的区别
    浏览器的缓存控制
  • 原文地址:https://www.cnblogs.com/dabexiong/p/5130905.html
Copyright © 2020-2023  润新知