从文件中将 json 数组解析为 javascript 数组:

Parsing json array to javascript array from file:

我正在使用 html5 filereader api,这是我的文件:

{"menu_items":[' +
'{"name":"m_div_img1", "icon":"m_img1.jpg", "tip":"m_tip1.png"},' +
'],'+
'"desktop_items":[],'+
'"widget_items":[]}

这是我的代码: http://jsfiddle.net/radibg2/kemqpruu/2/ 我收到此错误:

Uncaught SyntaxError: Unexpected token '

您显示的JSON无效。

  1. "tip: m_tip1.png" 应为 "tip": "m_tip1.png"(请参阅缺少的 " 符号)。
  2. '+' 连接无效,它是 JS,而不是 JSON。

根据您的示例,这将是更正后的有效 JSON:

{
    "menu_items": [
        {
            "name": "m_div_img1",
            "icon": "m_img1.jpg",
            "tip": "m_tip1.png"
        }
    ],
    "desktop_items": [],
    "widget_items": []
}

我建议您以后使用 JSON 验证器。可以在线和离线找到它们(对于更敏感的信息)。就像这个:http://jsonlint.com/

"tip:m_tip1.png" 需要 "tip": "m_tip1.png"

您遇到的错误是说您需要从此文件中删除撇号:Uncaught SyntaxError: Unexpected token '

如果您需要将所有内容放在一条线上,那就去做吧!

{"menu_items":[{"name":"m_div_img1", "icon":"m_img1.jpg", "tip":"m_tip1.png"}],"desktop_items":[],"widget_items":[]}

这将使您绕过多行限制(如果您正在处理这种情况)。否则,Sampsa 在他的回答中写的将是最干净的选择。

您发布的内容看起来像是一段 Javascript 代码,它将多个字符串文字连接起来以构建表示有效 JSON 对象的字符串。但是你所说的暗示那是一个 .json 文件,而不是一段 Javascript 代码,在这种情况下 你不应该在其中包含任何那些 ' + '.

Sampsa 已经发布了您的 JSON 对象的有效版本。就用那个。