我无法找出以下代码中 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))');
最佳答案
您需要转义\r\n
。 JavaScript 将 \r\n
中的 \
解释为转义字符,但实际上它们是字符串的一部分,应该保留。在每个 \
前面添加另一个 \
修复它,通过转义转义字符,以便 JSON 解析器按字面意思对待它:
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"}]');
关于javascript - JSON.parse 字符串无效字符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40672202/