3

我是 JSON 新手。我的主要目标是创建一个使用 JSON 填充的 jquery 轮播。当我有这样的事情并尝试验证时,我得到一个错误:

 {
    "error":"",
"hasMore":true,
"html":"<!-- Cache: Off -  --> <!-- MAIN COLUMN -->      <!-- PRODUCT RESULTS -->                    
<li class=\"product\"> ..."
}

当我在 jsonlint.com 中运行它时,错误与“html”有关,我收到此错误:

Parse error on line 4:

...: true,"html": "<!-- Cache: Off -  
----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['

任何帮助,将不胜感激

4

4 回答 4

2

您的内容(HTML),包括换行符。

更新:

如果您使用的是 PHP,请nl2br()在编码为 json 之前转义“\n”。

如果您使用其他语言,请在编码为 json 之前删除/转义“\n”。

于 2013-10-15T06:22:35.317 回答
1

用 替换换行符\n,即替换:

"key": "before linebreak
after linebreak"

有了这个:

"key": "before linebreak\nafter linebreak"
于 2013-10-15T06:23:03.433 回答
1

删除之前多余的换行符li tag

{
    "error": "",
    "hasMore": true,
    "html": "<!-- Cache: Off --> <!-- MAIN COLUMN --> <!-- PRODUCT RESULTS --> <li class=\"product\"> ..."
}

ValidatedJsonlint上

于 2013-10-15T06:23:24.997 回答
1

JSON 不允许字符串中有新行。

{
    "error":"",
"hasMore":true,
"html":"<!-- Cache: Off -  --> <!-- MAIN COLUMN -->      <!-- PRODUCT RESULTS -->                    
<li class=\"product\"> ..."
}

应该:

{
  "error":"",
  "hasMore":true,
  "html":"<!-- Cache: Off -  --> <!-- MAIN COLUMN -->      <!-- PRODUCT RESULTS -->                    \n<li class=\"product\"> ..."
}

这才\n是重要的。

于 2013-10-15T06:24:11.190 回答