C#:Json数据反序列化为Dictionary并根据关键字获取指定的值
2023-09-14 09:02:22 时间
转自曾是土木人原文 C#:Json数据反序列化为Dictionary并根据关键字获取指定的值
Json数据:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
{ "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; } } }
相关文章
- C#数据Encrypt加密Encrypt解密的算法使用
- C#将DLL嵌入到exe当中
- 数据库数据导入导出系列之五 C#实现动态生成Word(转)
- C#.NET常见问题(FAQ)-如何使用DataGridView跟Excel数据交互
- C# 导出数据至 CSV
- C# 使用 MemoryStream 将数据写入内存
- 【手机网络游戏 编程】C#异步socketAPI调用 处理数据的流程
- c# 优化代码的一些规则——用委托表示回调[五]
- [通信] C#多线程Socket-文件传输
- [通信] C# TCP实现多个客户端与服务端 数据 与 文件的传输
- C# 移除数组中重复数据
- C# Excel数据验重及Table数据验重
- C# Json反序列化 数据协定类型 无法反序列化 因为未找到必需的数据成员
- C# 获取xml数据,并转换为dataset
- [转] c# 的传递参数值传递与传递引用的区别,ref与out区别
- C# 移除数组中重复数据
- C# 获取xml数据,并转换为dataset
- C# 读取Excel中的数据
- 【原创】开源Math.NET基础数学类库使用(10)C#进行基本数据统计
- C# 快速排序
- C#编程总结(七)数据加密
- c#实现类似数据的行锁
- (47)C#里使用短路操作符
- C#实现水晶报表绑定数据并实现打印3-二维码条形码
- C#实现水晶报表绑定数据并实现打印2
- C#请求访问HTTP+JSON数据的解析
- 如何在 C# 中使用 AutoMapper
- 一起学C#上位机(一.C#基础知识)
- C# 使用正则表达式
- C#基础知识
- 【UiPath2022+C#】UiPath 数据操作