JSON.parse字符串无效字符问题

时间:2016-11-18 08:12:42

标签: javascript c# json razor model-view-controller

我无法在以下代码中找出JSON的问题。

这很好用:

var a = JSON.parse('[{"label":"not applicable"},{"label":"see items"},{"label":"40 days"},{"label":"suntest"}]');

但这引发了一个例外,"无效字符" :

var b = JSON.parse('[{"label":"234"},{"label":"Sunny AG, Sunny Me- Be Cars, Ben., Bu 60, DE 71059, Sind, Discharge p no. 9711\r\n"},{"label":"C207346"}]');

调试时我复制了上面的运行时代码。实际代码在C#MVC中为:

var a= JSON.parse('@Html.Raw(Json.Encode(Model.ShipToAddressCodeList))');

2 个答案:

答案 0 :(得分:5)

你需要逃避Object {videos: Array[0]} videos: Array[0] length: 0 __proto__: Array[0] __proto__: Object 。 JavaScript将\r\n中的\解释为转义字符,但实际上它们是字符串的一部分并且应该保留。在每个\r\n前添加另一个\通过转义转义字符来修复它,以便JSON解析器按字面意思对待它:

\

答案 1 :(得分:1)

您需要将\r\n转义为\\r\\n

var b = JSON.parse('[{"label":"234"},{"label":"Sunny AG, Sunny Me- Be Cars, Ben., Bu 60, DE 71059, Sind, Discharge p no. 9711\\r\\n"},{"label":"C207346"}]');