C#:Json数据反序列化为Dictionary并根据关键字获取指定的值
2017-05-11 15:38
405 查看
转自曾是土木人原文 C#:Json数据反序列化为Dictionary并根据关键字获取指定的值
Json数据:
View Code
问题:如何获取header中的数据行,以便显示在界面上?
效果图:
将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" } ] } } }
View Code
问题:如何获取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# Json数据反序列化为Dictionary并根据关键字获取指定值
- C# Json数据反序列化为Dictionary并根据关键字获取指定值
- C# Json数据反序列化为Dictionary并根据关键字获取指定值
- C# Json数据反序列化为Dictionary并根据关键字获取指定值1
- C#Json数据反序列化为Dictionary并根据关键字获取指定的值
- C#:Json数据反序列化为Dictionary并根据关键字获取指定的值
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
- C#根据指定url下载文件并读取.csv数据转为json格式
- 将Dictionary序列化为json数据 、json数据反序列化为Dictionary
- 用js解析经json序列化后的C#的DateTime类型数据
- jquery getJSON 数据联动(采用序列化和反序列化获取数据)
- json数据反序列化C#实体
- 将Dictionary序列化为json数据 、json数据反序列化为Dictionary
- C# 使用JSON对数据序列化和反序列化.
- C#操作数据库获取指定列数据类型为int的值
- c# 通过访问URL,获取并解析远程服务端返回的复杂Json数据
- struts2 + ajax(由前台的form提交数据到后台,再根据form所调用返回获取的后台json格式的数据返回到前端,然后前端用jquery对json数据进行解析)==》》涉及非文件上传的部分
- 用js解析经后台json序列化后的C#的DateTime类型数据
- 根据查询的关键字,实现获取百度指定页数的搜索结果的信息(网页地址,标题,摘要,并有排序的说明)
- C#获取指定日期的星期,和sql server中根据指定日期取出来的相对应