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的代码:

  
  
/// <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); } }
使用方法:
  
  
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; } } }
作者:hongfei







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值