zoukankan      html  css  js  c++  java
  • JSON的简单使用之提取多层嵌套的JSON(C#)

    JSON.NET(http://json.codeplex.com/)使用来将.NET中的对象转换为JSON字符串(序列化?),或者将JSON字符串转换为.NET中已有类型的对象(反序列化?)

    反序列化:

           一个json字符串如下:

    {
     "BasicResponse":{"Succeed":1},
     "RTDataSets":[
                  {
                   "tag":"IPV_YX_102",
                   "kksCode":"FEOSCOJODSKJOHKJFDBSINJKJSS05"
                   "RTDataValues":[
                                  {
                                   "Value":0.0,
                                   "Time":0
                                  }
                                  ]
                   },
           {
    <pre name="code" class="html">        "tag":"IPV_YX_102",
                   "kksCode":"FEOSCOJODSKJOHKJFDBSINJKJSS05"
                   "RTDataValues":[
                                  {
                                   "Value":0.0,
                                   "Time":0
                                  }
                                  ]
                   },
           .
           .
           .
    ]
     }
    
    

    现在要得到kksCode和对应的Value:

          //将json字符串转换为对象   
          JObject jObject = (JObject)JsonConvert.DeserializeObject(getString);
    <span style="font-family:System;">      //将RTDataSets的json数组转化为下一级json对象数组jar[]</span>
    <span style="font-family:System;">     </span> JArray jar = JArray.Parse(jObject["RTDataSets"].ToString());
                //对收到的字符串进行解析
                //局部变量
                string tampAdds;
                double value;
                //  Dictionary<string, double> _dict = new Dictionary<string, double>();
                //  List<Dictionary<string, double>> _list = new List<Dictionary<string, double>>();
    <span style="font-family:System;">      for (int j = i; j < (i + 1000); j++)
                     {
          //将JArray转化回JObject
         </span> JObject job = JObject.Parse(jar[i].ToString());
               tampAdds = (string)job["kksCode"];
          //再将RTDataValues的json数组转化为下一级json对象数组jarr[]
               JArray jarr = JArray.Parse(job["RTDataValues"].ToString());
    <pre name="code" class="csharp"><span style="font-family:System;">      //再将JArray转化回JObject</span>
          JObject jobs = JObject.Parse(jarr[0].ToString());
          value = (double)(jobs["Value"]);
         }

    
    具体JSON.NET的应用请点击该链接
    

    具体提取多层嵌套的JSON,点击打开链接

  • 相关阅读:
    金蝶报错事项
    ROS的脚本多拨
    zabbix4.0 相关的拓扑图及centos的虚拟配置
    ros开启快速转发模式
    linux 配置 l2tp-client
    linux 系统管理 实战技巧
    Flunetd 用于统一日志记录层的开源数据收集器
    在Centos7 更改Docker默认镜像和容器的位置
    Supervisor: 进程控制系统
    如何用正确的姿势查看 主机系统的CPU信息
  • 原文地址:https://www.cnblogs.com/haxianhe/p/9271248.html
Copyright © 2011-2022 走看看