• 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+" ");//显示到界面
    }
    break;
    }
    }
    }
  • 相关阅读:
    html5css练习 旋转
    html5 css练习 画廊 元素旋转
    html5 渐变按钮练习
    html5 旋转导航练习
    html5 javascript 表单练习案例
    html5 p1练习1,移动页面,标准标签布局
    pyqt5desinger的安装即配置
    python 文件操作
    openGL 大作业之n星变换
    openGL 蓝天白云
  • 原文地址:https://www.cnblogs.com/wangsai/p/4121424.html
Copyright © 2020-2023  润新知