2013-12-20 360 views

回答

6

JSON無效。如果JSON字符串包含特殊字符(如雙引號",反斜槓\或斜槓/),則需要用反斜槓\進行轉義。 (請參閱JSON.org。)沒有JSON解析器(包括Json.Net)能夠處理首先沒有正確格式化的JSON字符串。

你的JSON需要像這樣才能夠正確解析:

{ 
    "message": "some [email protected]#$%^&*(){}:\"?/?/|\"':>;><{\"d\":\"v\"}" 
} 

的解決方案是正確的序列在源字符串。

+0

也有許多其他特殊符號像大括號......需要JSON.NET庫支持的統一解決方案 – ohavryl

+0

如果JSON使用JSON序列化程序(如Json.Net中的JsonConvert.SerializeObject())進行_created_,則所有sp特殊字符將被正確地轉義。然後該字符串將能夠被解析。 –

+0

用戶手動輸入JSON。他可以輸入任何符號來消息值。 – ohavryl

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 }); 
+0

客戶端一切都很好。我需要一個服務器端解決方案。 – ohavryl

+2

@ohavryl,實際上你試圖從客戶端傳遞破碎的json。所以我認爲最好的方法是修復javascript。 –

相關問題