我正在尝试解析JS中的以下字符串:{"text":"Hej"}
这是有效的JSON。它是对象的属性。但是当我尝试解析它时,我收到以下错误:
为什么会这样?
答案 0 :(得分:1)
简单..你的字符串无效(对于JSON):它包含位置13的控制字符。
自己看看:json_str.charCodeAt(13)
并与http://en.wikipedia.org/wiki/C0_and_C1_control_codes进行比较。
编辑:好像你有一个换行符=(LF)= \n
。
答案 1 :(得分:0)
哦,我现在明白了!
这是一个换行符,你可以在这里看到:
我将用<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会出错。
希望它对你有所帮助,快乐发展!!