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

标签 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))');

最佳答案

您需要转义\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/

相关文章:

javascript - 以编程方式触发事件进入 $timeout 导致无限循环

c# - 等待用户输入 C# 控制台应用程序的设置时间

c# - 从 Gridview 中选择级联两个下拉列表的值

c# - 如果 x of y 值相等

javascript - 如何在 JSON.parsed responseText 上保留 hasOwnProperty?

json - 使用条件运算符在 Grails 中渲染 'as JSON' 无法正确渲染

javascript - 来自 ajax 调用的 JSON 输入意外结束

javascript - 如果输入的变量不同则显示一条消息

javascript - 解析html字符串并删除一些元素

ruby-on-rails - Rails,为什么 '.to_json' 正在转义 html 实体