可能重复:
Json.NET (Newtonsoft.Json) - Two 'properties' with same name?
我正在使用JSON.NET将JSON文件反序列化为字典。现在我想做的是有以下几行:
JsonConvert.DeserializeObject<IDictionary<string, object>>(text);
如果JSON中有重复的条目,则抛出异常,如下所示:
{
"ExampleText": "Example 1",
"ExampleText": "Example 2",
"ExampleText": "Example 3",
}
标准的JSON.NET行为是简单地将“ExampleText”条目替换为JSON中最后一个条目。是否可以抛出异常?
答案 0 :(得分:0)
如果你在msdn
中查看IDictionary“每个关联必须有唯一的密钥”
重复键中的问题。我认为你应该使用另一个系列。
试试这个
class MyValue
{
public string Key {get; set;}
public string Value {get; set;}
}
JsonConvert.DeserializeObject<List<MyValue>>(text);
答案 1 :(得分:0)
<强> - 编辑 - 强>
您无需反序列化为IDictionary<string, object>
。 JObject
已实施IDictionary<string, JToken>
var obj = (JObject)JsonConvert.DeserializeObject(json); //will throw exception for dublicates.
var str = (string)obj["ExampleText"];