2

これらのJSON文字列があるとします。

string s1 = "{\"foo\":\"wh\"o\"a\"}";
string s2 = "{\"foo\":{\"bar\":123}}";

fooの値を文字列形式で取得したいので、s1から取得"wh\"o\"a"したいs2から取得したい"{\"bar\":123}"。しかし、私がそうするなら

JsonObject j = JsonObject.Parse(s1);
string foo = j.Get("foo");

fooに"wh"はs1と"{"s2が含まれます。JsonObjectを使用してJSONフィールドの生の文字列値を取得するにはどうすればよいですか?

4

1 に答える 1

2

最初の文字列は有効なJSONではありません。おそらく次のようになります。

string s1 = "{\"foo\":\"wh\\\"o\\\"a\"}";

JsonObject.GetエスケープされたJSON文字列を返します。エスケープされていない文字列が必要な場合は、次のように呼び出す必要がありますJsonObject.GetUnescaped

string s1 = "{\"foo\":\"wh\\\"o\\\"a\"}";
string s2 = "{\"foo\":{\"bar\":123}}";

JsonObject.Parse(s1).GetUnescaped("foo").Print(); //  wh\"o\"a
JsonObject.Parse(s2).GetUnescaped("foo").Print(); // {"bar":123}
于 2013-02-03T16:49:01.047 に答える