我有一个对象,我尝试使用for-in循环迭代,但它看起来像是循环遍历每个字符而不是键:value
console.log(myObj);
chrome output:{"gender":"female"}
console.log(JSON.stringify(myObj));
chrome output:"{\"gender\":\"female\"}"
for(var value in myObj){
console.log(myObj[value]);
}
镀铬输出:
{
"
f
....等...
相同的行为,无论有多少键:值对。
由于对我的服务器进行了ajax调用,所讨论的对象是xhr.response
。
答案 0 :(得分:2)
您的“对象”不是对象,而是字符串。您需要先解析它才能使用它
myObj = JSON.parse(myObj);
for(var value in myObj){
console.log(myObj[value]);
}
答案 1 :(得分:0)
您的对象必须是字符串,请参阅下面的示例。您必须先将其解析回JSON:
var obj = { "gender": "male", "name": "john" };
document.write('<b>JSON object:</b>' +'<br>')
for(var value in obj){
document.write(value, ', ', obj[value]+'<br>');
}
document.write('<br><b>String:</b>' +'<br>')
var obj = '{ "gender": "male", "name": "john" }';
for(var value in obj){
document.write(obj[value]);
}
document.write('<br><br><b>JSON parsed String:</b>' +'<br>')
var obj1 = JSON.parse(obj)
for(var value in obj1){
document.write(value, ', ', obj1[value]+'<br>');
}