如何将这个json数据解析为对象?

时间:2014-05-19 15:32:44

标签: .net json rest

我是一个简单的json,如:

{
"values": [
    {
        "key1": "value1",
        "key2": "value2",
        "key3": "value3"
    },
    {
        "key1": "value1",
        "key2": "value2",
        "key3": "value3"
    }
]
}

我的对象结构是这样的:

[DataMember]
public List<KeyValues> values { get; set; }

在KeyValues内部,我只有一个词典:

[DataMember]
public Dictionary<string, string> values { get; set; }

列表中有2个对象但字典仍然为空。

如何将数组中的对象解析为我的字典?

提前致谢。

编辑:

  [Route("test")]
    [HttpPost]
    public HttpResponseMessage testPost([FromBody] TestObject test)
    {
    ...
    }

1 个答案:

答案 0 :(得分:1)

它不是你传入的词典。它是一个对象数组。我将Json改为

{
"values": [
    {
        key: "key1", value: "value1",
        key:  "key2", value:"value2",
         key: "key3", value:"value3"
    },
    {
         key: "key1", value:"value1",
         key: "key2", value:"value2",
         key: "key3", value:"value3"
    }
]
}

}

然后将映射到以下类结构:

public class Value
{
    public string key { get; set; }
    public string value { get; set; }
}

public class RootObject
{
    public List<Value> values { get; set; }
}

这可能足以让您使用。如果你真的想要一本字典,你可以考虑创建一个自定义的Json转换器(例如继承JsonConverter)