【问题标题】:Dictionary to JSON and JSON to Dictionary?字典到 JSON 和 JSON 到字典?
【发布时间】:2013-04-20 16:11:00
【问题描述】:

我有一个带有 get 方法的 web apicontroller,它将带有 Dictionary 的对象发送到 sencha (extjs)。数据可以很好地加载到 sencha。现在,当我从 sencha 将数据发布回控制器时,我的对象(下面示例中的 DTOUnivere)被填充而没有对象列表(下面的质量指标)。那么JSON到字典的转换就不行了?

控制器:

[HttpPut]
public void PutUniverse(int id, DTOUniverse dtoUniverse)
{

}

发布时的 JSON 输出

"{
"Name": "Libelle",
"Description": "",
"Domains": "",
"TimeZone": "",
"Script": "",
"DecayPercentage": "0",
"DecayTime": "",
"QualityIndicators": {
    "Age": {
        "Enabled": true,
        "Operator": ">",
        "Value": 80
    },
    "LastActivity": {
        "Enabled": true,
        "Operator": "=",
        "Value": 20
    },
    "Hits": {
        "Enabled": true,
        "Operator": "<>",
        "Value": 15
    },
    "AverageVisitDuration": {
        "Enabled": true,
        "Operator": "<",
        "Value": 10.5
    }
}

}"

问题在于 DTOUniverse.QualityIndi​​cators(实际字典)为空。 如何将此 JSON 转换回字典?

【问题讨论】:

  • 将 JSON 发布到字典代码?

标签: c# .net json dictionary


【解决方案1】:

在站点json2csharp.com创建模型

通过 Json.net 解析模型

【讨论】:

    【解决方案2】:

    使用fastjson它具有将json序列化为字典的兼容性,反之亦然

    这里有详细文章使用fastjson

    【讨论】:

      【解决方案3】:

      在您的 JSON 中,QualityIndicators 不是列表(数组),它只是一个普通对象,如果您希望将其解析为数组,则需要用 [] 包围您的对象

      【讨论】:

      • 如果我这样做,我会得到一份质量指标列表,但它需要是一本字典。
      • 为什么是字典?关键是什么?
      • Age, LastActivity,... 是关键。我需要它是一个 Dictionary,其中 object 是 QualityIndi​​cator。 Sencha 需要这种方式。
      • 我明白了...看看这个,它可能会有所帮助stackoverflow.com/questions/10792007/…
      猜你喜欢
      • 2017-06-28
      • 2018-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-12
      • 2016-03-08
      • 2021-05-23
      相关资源
      最近更新 更多