假设我有这些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包含来自s1的"wh"
和来自s2的"{"
。如何使用JsonObject获取JSON字段的原始字符串值?
答案 0 :(得分: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}