Get*_*Old 4 jquery parsing json sign equals
"Cost to Implement \nRate 5 to 1\nHigh = 5\nLow = 1"
Run Code Online (Sandbox Code Playgroud)
作为JSON的一部分在jsonlint中解析很好,但在Chrome中使用任何这些方法都失败了(每个方法都单独尝试):
sections = $.parseJSON(myJSONstr);
sections = JSON.parse(myJSONstr);
sections = eval('(' + myJSONstr + ')');
Run Code Online (Sandbox Code Playgroud)
当我从JSON中的字符串中删除"="符号时,一切都很好.我的用户需要能够在输入的文本中输入=符号.有没有解决的办法?
看起来你正在进入换行而不逃避它.你需要逃避反斜杠.
以下操作失败是因为您要在JSON中输入原始换行符,必须对其进行转义
var obj = JSON.parse('{"prop": "Cost to Implement \nRate 5 to 1\nHigh = 5\nLow = 1"}');
Run Code Online (Sandbox Code Playgroud)
逃避反斜杠
// Works fine
var obj = JSON.parse('{"prop": "Cost to Implement \\nRate 5 to 1\\nHigh = 5\\nLow = 1"}');
Run Code Online (Sandbox Code Playgroud)
请注意,如果您正确序列化JSON对象,这些新行(以及必须转发的其他字符,如制表符,退格键......)将自动转义.例如
// Correctly parses the new line
JSON.parse(JSON.stringify({prop: "Line1\nLine2\tAfterTab"}))
Run Code Online (Sandbox Code Playgroud)