JSON.parse()不接受有效的JSON

时间:2014-11-26 13:31:12

标签: javascript json compiler-errors

我正在尝试解析JS中的以下字符串:{"text":"Hej"}

这是有效的JSON。它是对象的属性。但是当我尝试解析它时,我收到以下错误:JSON ERROR

为什么会这样?

3 个答案:

答案 0 :(得分:1)

简单..你的字符串无效(对于JSON):它包含位置13的控制字符。 自己看看:json_str.charCodeAt(13)并与http://en.wikipedia.org/wiki/C0_and_C1_control_codes进行比较。

编辑:好像你有一个换行符=(LF)= \n

答案 1 :(得分:0)

哦,我现在明白了!

这是一个换行符,你可以在这里看到:

enter image description here

我将用<br />

替换换行符

非常感谢大家的帮助!

答案 2 :(得分:0)

对于任何未来的成员也会遇到问题,这是我的问题,以及如何解决问题。

我允许用户在textarea中编写他们想要的任何内容,这将通过AJAX插入到我的statuses MySQL表中,而不会转义任何字符,如\n或其他字符。这是不好的做法,可能会导致这样的问题。

如何解决它..

最佳做法是逃避PHP。它并不简单,只需使用内置的PHP函数:nl2br。这将用<br />替换所有换行符。这是一个例子:

$str = "Bar bar ba r foo foo foof foo bar
bar bar bar fooo
more foo foofo bar foo bar";

$new_string = nl2br($str);

如果你参加派对有点晚,并且只是稍微意识到这个问题,你也可以用JavaScript做到这一点!像这样:

str = str.replace(/(?:\r\n|\r|\n)/g, '<br />');

在解析JSON或类似的东西之前,请记住这一点。因为JSON会出错。

希望它对你有所帮助,快乐发展!!