我正在处理项目,我在该项目中发送请求服务器以获取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();
在客户端,在AJAX响应中,我使用上面的方法来跟踪String:
[{"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"}]
当我使用JQuery解析它时,如下所示:
$jQ.each($jQ.parseJSON(responseJSON), function(idx, obj) {
alert(obj.filePath);
});
我的JS错误为JSON.parse: expected property name or '}'
我不知道为什么会出现这个错误。
答案 0 :(得分:1)
根据jsonlint.com,您应该将值放入""
。
由于特殊字符&
答案 1 :(得分:1)
只看前几行:
[{"duration":12222‚"height":12‚
这似乎不是有效的json。 duration
是关键,值12222
是Integer
,但是你在int旁边也有字符串数据‚
,这会产生无效的json数据。
如果您有混合数据,请使用双引号对其进行封装,以将其视为字符串。
<强>更新强>
,
被html编码为‚
- 这是你的问题。
试试这个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"
}
]
这现在验证了。
答案 2 :(得分:0)
您的java环境可能错误地序列化了数组。
而不是, - 单引号U + 201A - 你应该有一个逗号(,U + 002C)。