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 回答