12

JObject.Parse(jsonString) がブール データの問題を引き起こしています。例:jsonは次のとおりです。

{
    "BoolParam": true
}

次のコードを使用して解析しました。

JObject data = JObject.Parse(str1);
foreach (var x in data)
{
  string name = x.Key;
  Console.Write(name + " (");
  JToken value = x.Value;
  Console.Write(value.Type + ")\n");
  Console.WriteLine(value);
}

これは値を次のように出力します: BoolParam (Boolean): True

後で使用するためにこの json を保存すると、大文字と小文字が区別されるため問題が発生します。保存されたjsonは次のようになります

{
    "BoolParam": True
}

ただし、後で使用すると、JObject.Parse(str) は無効な Json としてエラーをスローします。値の解析中に予期しない文字が発生しました: T. Path 'BoolParam', line 2, position 15.

ケースを「True」から「true」に変更すると、機能します。保存時に大文字と小文字を変更するためにこのハックを追加したくありませんが、このシナリオを処理するより良い方法はありますか。

4

2 に答える 2

7

保存時に大文字と小文字を変更するためにこのハックを追加したくありませんが、このシナリオを処理するより良い方法はありますか。

いいえ、後で Newtonsoft JSON などの JSON シリアライザーを使用して逆シリアル化できるようにする場合は、保存時に有効な JSON を生成する必要があります。したがって、保存経路を修正することが正しい方法です。

于 2013-09-25T17:03:30.100 に答える