这是我拥有的JSON字符串。我已经从JSON中删除了开始和结束括号,因为我需要使用jQuery中的JSON值来实际加载选择框中的数据:
{
"text": "Pediatric FA, CPR & AED (2015)",
"id": "128177000002431552~Pediatric FA, CPR & AED DVD Set (2015)~YES~117.19"
}, {
"text": "FA, CPR & AED Manual (2015)",
"id": "128177000002431564~FA, CPR & AED Manual (2015)~YES~17.73"
}
这是我的Javascript代码
$.post("items.cfm",{"term":request.term})
.done(function(data){
try{
var obj = JSON.parse(data),
values = [];
$.each(data, function(i, obj) {
values.push({"label":obj[x].text, "value":obj[x].id, "price":obj[x].id.split('~')[3]});
})
response(values);
}catch(e){
alert(e);
}
})
.fail(function(e){
alert(e);
});
每次我运行它都会收到错误
SyntaxError:位于
的JSON中的意外标记
答案 0 :(得分:3)
您有两个用逗号分隔的JSON对象。如果你认为这是一个数组,你需要用数组括号括起来:
[
{
"text": "Pediatric FA, CPR & AED (2015)",
"id": "128177000002431552~Pediatric FA, CPR & AED DVD Set (2015)~YES~117.19"
}, {
"text": "FA, CPR & AED Manual (2015)",
"id": "128177000002431564~FA, CPR & AED Manual (2015)~YES~17.73"
}
]
作为旁注,如果您的服务器生成无效的JSON,您应该仔细查看生成JSON的代码。有可能,有代码试图手工生成这个字符串,这是一个不好的做法。服务器应该使用库将返回的值转换为JSON。