0

重複の可能性:
Json.NET(Newtonsoft.Json)-同じ名前の2つの「プロパティ」?

JSON.NETを使用してJSONファイルを辞書に逆シリアル化します。今私がしたいのは次の行です:

JsonConvert.DeserializeObject<IDictionary<string, object>>(text);

次のようにJSONに重複するエントリがある場合は、例外をスローします。

{
    "ExampleText": "Example 1",
    "ExampleText": "Example 2",
    "ExampleText": "Example 3",
}

標準のJSON.NETの動作は、「ExampleText」エントリをJSONの最後のエントリに置き換えることです。代わりに例外をスローすることは可能ですか?

4

2 に答える 2

0

あなたがmsdnでIDictionaryに目を向けるなら

「各アソシエーションには一意のキーが必要です」

重複したキーの問題。別のコレクションを使用する必要があると思います。

これを試して

class MyValue
{
  public string Key {get; set;}
  public string Value {get; set;}
}

JsonConvert.DeserializeObject<List<MyValue>>(text);
于 2012-10-09T18:40:30.907 に答える
0

- 編集 -

に逆シリアル化する必要はありませんIDictionary<string, object>JObjectすでに実装していますIDictionary<string, JToken>

var obj = (JObject)JsonConvert.DeserializeObject(json); //will throw exception for dublicates.
var str = (string)obj["ExampleText"];
于 2012-10-09T19:53:01.917 に答える