jquery - "="登录 JSON 文本导致解析错误

标签 jquery json parsing equals sign

      "Cost to Implement \nRate 5 to 1\nHigh = 5\nLow = 1" 

作为 JSON 的一部分,在 jsonlint 中解析得很好,但在 Chrome 中使用以下任何一种方法都会失败(每种方法单独尝试):

sections = $.parseJSON(myJSONstr);

sections = JSON.parse(myJSONstr);

sections = eval('(' + myJSONstr + ')');

当我从 JSON 中的字符串中删除“=”符号时,一切都很好。我的用户需要能够在他们输入的文本中输入 = 符号。有办法解决这个问题吗?

最佳答案

看起来您正在输入换行符而没有转义它。您需要转义反斜杠。

以下操作失败,因为您要在 JSON 中输入原始换行符,必须对它们进行转义

var obj = JSON.parse('{"prop": "Cost to Implement \nRate 5 to 1\nHigh = 5\nLow = 1"}');

转义反斜杠

// Works fine
var obj = JSON.parse('{"prop": "Cost to Implement \\nRate 5 to 1\\nHigh = 5\\nLow = 1"}');

请注意,如果您正确序列化 JSON 对象,这些新行(以及必须转义的其他字符,如制表符、退格键...)将自动转义。例如

// Correctly parses the new line
JSON.parse(JSON.stringify({prop: "Line1\nLine2\tAfterTab"})) 

关于jquery - "="登录 JSON 文本导致解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13459227/

相关文章:

jquery - 带有模型 OneToOneField 的 django-jquery-file-upload

jquery - 在jquery中,$.each是什么意思?

ruby-on-rails - 将静态 JSON 文件解析为 Rails 对象

python - Rpy2,将R返回(List Vector)转换为Python中的Json对象

c# - 如何解析日期时间秒.ms

c# - Sprache:语法中的左递归

c++ - 如何接近 C++ 解析器

javascript - jquery将小数结果转换为分数

javascript - 当元素进入视口(viewport)时,在离开视口(viewport)之前水平滚动其全部内容

javascript - 函数内部构建的对象数组存在类型问题