我工作的代码,但它有点失败:我的JSON响应是一个有效的JSON,因为我在JSOnLint.com上检查它。JSON解析问题代码
因此,这里是它如果我开始我的JSON具有以下制造麻烦
$.post("items.cfm",{"term":request.term})
.done(function(data){
alert(data);
try{
var obj = $.parseJSON(data),
values = [];
alert(obj[x].id.split('~')[3]);
for(var x = 0; x < obj.length; x++){
values.push({
"label":obj[x].text, "value":obj[x].id,
"price":obj[x].id.split('~')[3]
});
}
response(values);
} catch(e) {
alert(e);
}
})
的一段代码:
{
"text": "Blue CPR Pocket Mask",
"id": "128177000003239005~Blue~YES~10.75"
}, {
"text": "CPR Face Shields",
"id": "128177000000138987~CPs~YES~41.83"
}
...它抛出一个错误:
SyntaxError: Unexpected token , in JSON at position
...但如果我以:
[{
"text": "Blue CPR Pocket Mask",
"id": "128177000003239005~Blue~YES~10.75"
}, {
"text": "CPR Face Shields",
"id": "128177000000138987~CPs~YES~41.83"
}
]
一个有效的JSON,但它与我的代码失败,因为我试图解析它并使用它的值,但它对我说,ID是未定义的。所以我应该怎么做才能使它工作。
更新#1
我跟每个人的方法,给了一个尝试,现在开始我下面的错误
TypeError: Cannot use 'in' operator to search for '4592' in
您有两个JSON对象,而不是一个。因此,将它们视为两个不同的对象,或将它们组合为另一个对象的数组或内部对象。而且,你为什么要解析?它已经是JSON了,不是吗? – RaR
你的try里面有多少'console.log(obj)'返回? –