我无法在以下代码中找出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))');
答案 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"}]');