如何使用包含特殊字符的值之一解析JSON字符串?
JObject obj = JObject.Parse(str);
str值:
{
"message": "some !@#$%^&*(){}:"?/?/|"':>;><{"d":"v"}"
}
我有execption:在解析值后遇到意外的字符:{。
答案 0 :(得分:7)
JSON无效。如果JSON字符串包含双引号"
,反斜杠\
或斜杠/
等特殊字符,则需要使用反斜杠\
进行转义。 (参见JSON.org。)没有JSON解析器,包括Json.Net,将能够处理首先没有正确格式化的JSON字符串。
您的JSON需要看起来像这样才能正确解析:
{
"message": "some !@#$%^&*(){}:\"?/?/|\"':>;><{\"d\":\"v\"}"
}
解决方案是在源处正确序列化字符串。
答案 1 :(得分:1)
拿走你的JSON和.stringify()
。
{
"message": JSON.stringify("your text here")
}
如果ASP.NET MVC视图中有原始数据,则可以按照以下方式进行:
{
"message": JSON.stringify("@Html.Raw(HttpUtility.JavaScriptStringEncode(Model.MyString))")
}
您还可以尝试更优选的方式:
JSON.stringify({ "message" : message });