C#:Json数据反序列化为Dictionary并根据关键字获取指定的值

简介:

转自曾是土木人原文 C#:Json数据反序列化为Dictionary并根据关键字获取指定的值

Json数据:

复制代码
{
  "dataSet": {
    "header": {
      "returnCode": "0", 
      "errorInfo": "HTTP请求错误", 
      "version": "V1.0R010", 
      "totalRows": "2000", 
      "returnRows": "20"
    }, 
    "fieldDefine": {
      "assetId": "string", 
      "serverIdcId": "int", 
      "inputTime": "datetime"
    }, 
    "data": {
      "row": [
        {
          "AssetId": "TCNS2006888", 
          "ServerIdcId": "1", 
          "InputTime": "2008-12-12"
        }, 
        {
          "AssetId": "TCNS2006889", 
          "ServerIdcId": "2", 
          "InputTime": "2008-1-1"
        }
      ]
    }
  }
}
复制代码

问题:如何获取header中的数据行,以便显示在界面上?                                            

效果图:                                            

将json数据转成dictionary的代码:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/// <summary>
/// 将json数据反序列化为Dictionary
/// </summary>
/// <param name="jsonData">json数据</param>
/// <returns></returns>
private  Dictionary< string object > JsonToDictionary( string  jsonData)
{
     //实例化JavaScriptSerializer类的新实例
     JavaScriptSerializer jss =  new  JavaScriptSerializer();
     try
     {
         //将指定的 JSON 字符串转换为 Dictionary<string, object> 类型的对象
         return  jss.Deserialize<Dictionary< string object >>(jsonData);
     }
     catch  (Exception ex)
     {
         throw  new  Exception(ex.Message);
     }
}

 

 使用方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private  void  button1_Click( object  sender, EventArgs e)
{
     //Json数据
     string  json =  "{\"dataSet\":{\"header\":{\"returnCode\":\"0\",\"errorInfo\":\"HTTP请求错误\",\"version\":\"V1.0R010\",\"totalRows\":\"2000\",\"returnRows\":\"20\"},\"fieldDefine\":{\"assetId\":\"string\",\"serverIdcId\":\"int\",\"inputTime\":\"datetime\"},\"data\":{\"row\":[{\"AssetId\":\"TCNS2006888\",\"ServerIdcId\":\"1\",\"InputTime\":\"2008-12-12\"},{\"AssetId\":\"TCNS2006889\",\"ServerIdcId\":\"2\",\"InputTime\":\"2008-1-1\"}]}}}" ;
     Dictionary< string object > dic = JsonToDictionary(json); //将Json数据转成dictionary格式
     Dictionary< string object > dataSet=(Dictionary< string object >)dic[ "dataSet" ];
     //使用KeyValuePair遍历数据
     foreach  (KeyValuePair< string object > item  in  dataSet)
     {
         if  (item.Key.ToString() ==  "header" ) //获取header数据
         {
             var  subItem=(Dictionary< string , object >)item.Value;
             foreach  ( var  str  in  subItem)
             {
                 textBox1.AppendText(str.Key +  ":"  + str.Value+ "\r\n" ); //显示到界面
             }
             break ;
         }
     }
}

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。
    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/6841198.html ,如需转载请自行联系原作者    


相关文章
|
1天前
|
JSON Java Linux
【探索Linux】P.30(序列化和反序列化 | JSON序列化库 [ C++ ] )
【探索Linux】P.30(序列化和反序列化 | JSON序列化库 [ C++ ] )
15 2
|
2天前
|
SQL 存储 开发框架
C# DataSet结合FlyTreeView显示树状模型数据
C# DataSet结合FlyTreeView显示树状模型数据
|
6天前
|
JSON JavaScript Java
从前端Vue到后端Spring Boot:接收JSON数据的正确姿势
从前端Vue到后端Spring Boot:接收JSON数据的正确姿势
18 0
|
8天前
|
JSON 数据格式 Python
Python标准库中包含了json模块,可以帮助你轻松处理JSON数据
【4月更文挑战第30天】Python的json模块简化了JSON数据与Python对象之间的转换。使用`json.dumps()`可将字典转为JSON字符串,如`{&quot;name&quot;: &quot;John&quot;, &quot;age&quot;: 30, &quot;city&quot;: &quot;New York&quot;}`,而`json.loads()`则能将JSON字符串转回字典。通过`json.load()`从文件读取JSON数据,`json.dump()`则用于将数据写入文件。
16 1
|
8天前
|
JSON 数据格式 Python
Python处理JSON数据
【4月更文挑战第30天】该内容介绍了Python处理JSON数据的三个方法:1)使用`json.loads()`尝试解析字符串以验证其是否为有效JSON,通过捕获`JSONDecodeError`异常判断有效性;2)通过`json.dumps()`的`indent`参数格式化输出JSON数据,使其更易读;3)处理JSON中的日期,利用`dateutil`库将日期转换为字符串进行序列化和反序列化。
22 4
|
12天前
|
存储 JSON 数据处理
|
13天前
|
JSON 数据可视化 定位技术
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
18 0
|
22天前
|
JSON JavaScript 数据格式
vue展示json数据,vue-json-viewer的使用
vue展示json数据,vue-json-viewer的使用
30 0
|
1月前
|
JSON 前端开发 Java
Json格式数据解析
Json格式数据解析