如何解析包含特殊字符的值之一的JSON字符串?JSON.Net反序列化包含特殊字符的字符串
JObject obj = JObject.Parse(str);
STR值:
{
"message": "some [email protected]#$%^&*(){}:"?/?/|"':>;><{"d":"v"}"
}
我有execption:解析時遇到了意外字符值後:{。
如何解析包含特殊字符的值之一的JSON字符串?JSON.Net反序列化包含特殊字符的字符串
JObject obj = JObject.Parse(str);
STR值:
{
"message": "some [email protected]#$%^&*(){}:"?/?/|"':>;><{"d":"v"}"
}
我有execption:解析時遇到了意外字符值後:{。
JSON無效。如果JSON字符串包含特殊字符(如雙引號"
,反斜槓\
或斜槓/
),則需要用反斜槓\
進行轉義。 (請參閱JSON.org。)沒有JSON解析器(包括Json.Net)能夠處理首先沒有正確格式化的JSON字符串。
你的JSON需要像這樣才能夠正確解析:
{
"message": "some [email protected]#$%^&*(){}:\"?/?/|\"':>;><{\"d\":\"v\"}"
}
的解決方案是正確的序列在源字符串。
把你的JSON和.stringify()
它。
{
"message": JSON.stringify("your text here")
}
如果你在你的ASP.NET MVC視圖的原始數據,你可以按照這種方式:
{
"message": JSON.stringify("@Html.Raw(HttpUtility.JavaScriptStringEncode(Model.MyString))")
}
您也可以嘗試更多的首選方式:
JSON.stringify({ "message" : message });
客戶端一切都很好。我需要一個服務器端解決方案。 – ohavryl
@ohavryl,實際上你試圖從客戶端傳遞破碎的json。所以我認爲最好的方法是修復javascript。 –
也有許多其他特殊符號像大括號......需要JSON.NET庫支持的統一解決方案 – ohavryl
如果JSON使用JSON序列化程序(如Json.Net中的JsonConvert.SerializeObject())進行_created_,則所有sp特殊字符將被正確地轉義。然後該字符串將能夠被解析。 –
用戶手動輸入JSON。他可以輸入任何符號來消息值。 – ohavryl