从JsonObject获取字符串值

时间:2013-02-03 09:23:25

标签: json servicestack

假设我有这些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字段的原始字符串值?

1 个答案:

答案 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}