2

解析 JSON 对象时,我在 Firebug 控制台中收到“控制字符错误”错误。这个网站有很多问题和解决方案;但我无法解决这个问题。我相信我在做一些愚蠢的事情。请指出我的错误。

JS 小提琴:http: //jsfiddle.net/Purus/Eqz2r/

如果我们将 json 数据更改为纯文本而不是 html 标签,它就可以工作。

错误:

SyntaxError: JSON.parse: bad control character in string literal
someVal = JSON.parse(sign);

笔记:

  • JSON 数据是使用 json_encode 函数从 PHP 函数中获取的。
  • json 输出在 jsonlint 中看起来有效

下面是我使用的代码。

$(document).ready(function () {
   var sign = '{"data":"<br\/><br\/>----------<br \/>\r\nFrom Yahoo Team<br \/>\r\n<a href=\"http:\/\/localhost\/base\/1-yahoo-logo.jpg\" target=\"_blank\"><img style=\"padding: 5px;\" src=\"http:\/\/localhost\/plugins\/1-yahoo-logo.jpg\" height=\"120\" width=\"196\" \/><\/a>"}';

   someVal = JSON.parse(sign);
   $(".demo").append(someVal.data);
});
4

3 回答 3

7

你需要逃脱你的逃脱:)

使用双\\而不是\

http://jsfiddle.net/Eqz2r/2/

于 2013-10-24T18:28:41.133 回答
1

问题是\r 和\n。这些需要被转义为

\\r 

\\n 

在 JSON 字符串中

于 2013-10-24T18:32:59.010 回答
1
var s= JsonString;
$.parseJSON(s.replace(/\s+/g,""));
于 2014-01-24T22:25:40.047 回答