-1

我有一个带有 get 方法的 web apicontroller,它将带有 Dictionary 的对象发送到 sencha (extjs)。数据可以很好地加载到 sencha。现在,当我从 sencha 将数据发布回控制器时,我的对象(下面示例中的 DTOUnivere)被填充而没有对象列表(下面的 QualityIndi​​cators)。所以从 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 转换回字典?

4

3 回答 3

1

在站点json2csharp.com中创建模型

通过 Json.net 解析模型

于 2013-04-26T13:19:26.763 回答
0

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

这里是使用fastjson的详细文章

于 2013-04-26T13:10:58.613 回答
-1

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

于 2013-04-26T13:30:39.987 回答