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;

}

}

}

C# Json数据反序列化为Dictionary并根据关键字获取指定值1的更多相关文章

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

    Json数据: { "dataSet": { "header": { "returnCode": "0", " ...

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

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

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

    Json数据: { "dataSet": { "header": { ", "errorInfo": "HTTP请求错误 ...

  4. 将Dictionary序列化为json数据 、json数据反序列化为Dictionary

    需要引用System.Web.Extensions  dll类库 /// <summary> /// 将json数据反序列化为Dictionary /// </summary> ...

  5. 将JSON字符串反序列化为指定的.NET对象类型

    目录导航: 前言: 方法一.在项目中定义对应的对象参数模型,用于映射反序列化出来的参数(复杂JSON字符串数据推荐使用): 方法二.直接将JSON字符串格式数据反序列化转化为字典数据(简单JSON字符 ...

  6. 类对象序列化为json串,json串反序列化为类对象

    1.类对象序列化为json串: 方法一: class P(object): def __init__(self,name,age,sex): self.name=name self.age=age s ...

  7. Python: Json串反序列化为自定义类对象

    最近刚接触到python,就想到了如何反序列化json串.网上找了一下,大部分都是用json模块反序列化为python数据结构(字典和列表).如果对json模块不了解的参考菜鸟教程.然后我在此基础上将 ...

  8. 我的Android进阶之旅------>解决Jackson、Gson解析Json数据时,Json数据中的Key为Java关键字时解析为null的问题

    1.问题描述 首先,需要解析的Json数据类似于下面的格式,但是包含了Java关键字abstract: { ret: 0, msg: "normal return.", news: ...

  9. 从HTTP request的body中拿到JSON并反序列化为一个对象

    import com.google.gson.Gson; import org.apache.struts2.ServletActionContext; import javax.servlet.Se ...

随机推荐

  1. oc-01

    //#ifndef __OCDay01__aa__ //#define __OCDay01__aa__ //这2行是预编译指令,防止include的时候重复包含操作(a包含b,b又包含了a) #inc ...

  2. 纯windows下制作变色龙引导安装U盘教程

    原创教程:纯windows下制作变色龙引导安装U盘教程 支持Mavericks和Yosemite 支持白苹果 目标:windows下制作带 Chamelon变色龙引导的黑苹果安装U盘,支持PC机引导安 ...

  3. C++_快速排序

    void quick_sort(int s[],int l,int r) { if(l<r) { int i=l,j=r,x=s[l]; while(i<j) { while( i< ...

  4. WordPress搬家全攻略

    零.前言 我自己有两个博客,一个是你看到的这个,专门用来写我的技术文章:另一个是我自己的心情记录博客,专门记录和技术无关的东西. 之前我的心情记录博客一直放在openshift上面,这是redhat官 ...

  5. eclipse中自动生成javadoc文档

    使用eclipse生成文档(javadoc)主要有三种方法:  1,在项目列表中按右键,选择Export(导出),然后在Export(导出)对话框中选择java下的javadoc,提交到下一步.  在 ...

  6. [转]MVC自定义数据验证(两个时间的比较)

    本文转自:http://www.cnblogs.com/zhangliangzlee/archive/2012/07/26/2610071.html Model: public class Model ...

  7. [改善Java代码]不推荐使用binarySearch对列表进行检索

    对一个列表进行检索时,我们使用的最多的是indexOf方法,它简单好用,而且也不会出错,虽然它只能检索到第一个符合条件的值,但是我们可以生成子列表后再检索.这样也就可以查找到所有符合条件的值了. Co ...

  8. [改善Java代码]在接口中不要存在实现代码

    第3章  类.对象及方法 书读得多而不思考,你会觉得自己知道的很多. 书读得多而思考,你会觉得自己不懂的越来越多. —伏尔泰 在面向对象编程(Object-Oriented Programming,O ...

  9. RTC之初始化

    RTC为了避免初始化一般有3中方法: 一给MCU的VBAT供电,利用MCU的后备寄存器保存已经设置过时间的标志值,RTC初始化时先查询寄存器值如果是已经设置过则不用初始化设置时间 二 当不给VBUAT ...

  10. 实现类似 QQ音乐网页版 的单页面总结

    最近需要对创业团队的网站进行改版,而我负责前端设计和实现. 下面是一些总结与体会: 当设计完成之前,我就跟和我配合的Java 后台说用iframe实现,结果说麻烦不肯,到最后突然对我说还是用ifram ...