Javascript 无法分析JSON数组字符串

Javascript 无法分析JSON数组字符串,javascript,json,Javascript,Json,我正在进行一个项目,在该项目中,我向服务器发送获取JSON数组字符串的请求。我使用以下java代码创建一个JSON数组列表字符串 JSONArray itemList = new JSONArray(); for(int i =0; i<4; i++) { String exe = "m"; final JSONObject jsonObj = new JSONObject(); jsonObj.put("filePath", 30); jsonObj.pu

我正在进行一个项目,在该项目中,我向服务器发送获取JSON数组字符串的请求。我使用以下java代码创建一个JSON数组列表字符串

JSONArray itemList = new JSONArray();
for(int i =0; i<4; i++) {
    String exe = "m";
    final JSONObject jsonObj = new JSONObject();
    jsonObj.put("filePath", 30);
    jsonObj.put("duration", 12222);
    jsonObj.put("bitRate", 1111);
    jsonObj.put("widht", 12);
    jsonObj.put("format", 123);
    jsonObj.put("height", 12);
    jsonObj.put("exe", exe);
    JSONObject jObject = new JSONObject();

    try {
        itemList.put(jsonObj);
        // jObject.put("itemList", itemList);
    } catch (Exception e) {
        System.out.println("ERROR");
    }
}
return itemList.toString();
当我使用JQuery解析它时,如下所示:

$jQ.each($jQ.parseJSON(responseJSON), function(idx, obj) {
    alert(obj.filePath);
});
我收到的JS错误为
JSON.parse:预期的属性名或“}”


我不明白发生此错误的原因。

根据jsonlint.com,您应该将值放入


由于特殊字符
&

仅查看前几行:

[{“持续时间”:12222;高度:12&sbquo;

这似乎不是有效的json。
duration
是键,值是
12222
,它是
Integer
,但是int旁边还有字符串数据
,这使得此json数据无效

如果有混合数据,请使用双引号将其封装,以将其视为字符串


更新

是html编码为
&sbquo;
-这是您的问题

尝试以下json字符串:

[
    {
        "duration": 12222,
        "height": 12,
        "widht": 12,
        "filePath": 30,
        "format": 123,
        "bitRate": 1111,
        "exe": "m"
    },
    {
        "duration": 12222,
        "height": 12,
        "widht": 12,
        "filePath": 30,
        "format": 123,
        "bitRate": 1111,
        "exe": "m"
    },
    {
        "duration": 12222,
        "height": 12,
        "widht": 12,
        "filePath": 30,
        "format": 123,
        "bitRate": 1111,
        "exe": "m"
    },
    {
        "duration": 12222,
        "height": 12,
        "widht": 12,
        "filePath": 30,
        "format": 123,
        "bitRate": 1111,
        "exe": "m"
    }
]

这将验证。

您的java环境可能正在错误地序列化数组


您应该使用逗号(,U+002C),而不是“单底引号U+201A”.

事实上,你的JSON中有一个错误,请将你的JSON粘贴到这里->你会看到你为什么得到JSON,它是javascript obj…你不需要解析它,我认为你的JSON是无效的…你有html编码的来源吗?我找到的在线工具没有将逗号编码为&sbquo;的html编码,如果他们确实对它进行了加密,它应该是正确的be,;(单低引号)-也许他用错了逗号?
[
    {
        "duration": 12222,
        "height": 12,
        "widht": 12,
        "filePath": 30,
        "format": 123,
        "bitRate": 1111,
        "exe": "m"
    },
    {
        "duration": 12222,
        "height": 12,
        "widht": 12,
        "filePath": 30,
        "format": 123,
        "bitRate": 1111,
        "exe": "m"
    },
    {
        "duration": 12222,
        "height": 12,
        "widht": 12,
        "filePath": 30,
        "format": 123,
        "bitRate": 1111,
        "exe": "m"
    },
    {
        "duration": 12222,
        "height": 12,
        "widht": 12,
        "filePath": 30,
        "format": 123,
        "bitRate": 1111,
        "exe": "m"
    }
]