Javascript、'for in' 循环读取对象作为字符串?
Javascript, 'for in' loop reading object as string?
我尝试使用 for-in 循环遍历一个对象,但它看起来像是在遍历每个字符而不是 key:value
console.log(myObj);
chrome 输出:{"gender":"female"}
console.log(JSON.stringify(myObj));
chrome 输出:"{\"gender\":\"female\"}"
for(var value in myObj){
console.log(myObj[value]);
}
chrome 输出:
{
"
f
....等...
无论有多少 key:value 对,行为都相同。
由于对我的服务器的 ajax 调用,所讨论的对象是 xhr.response
。
您的 "object" 不是对象,而是字符串。您需要先解析它才能使用它
myObj = JSON.parse(myObj);
for(var value in myObj){
console.log(myObj[value]);
}
您的对象必须是字符串,请参见下面的示例。您必须首先将其解析回 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>');
}
我尝试使用 for-in 循环遍历一个对象,但它看起来像是在遍历每个字符而不是 key:value
console.log(myObj);
chrome 输出:{"gender":"female"}
console.log(JSON.stringify(myObj));
chrome 输出:"{\"gender\":\"female\"}"
for(var value in myObj){
console.log(myObj[value]);
}
chrome 输出:
{
"
f
....等...
无论有多少 key:value 对,行为都相同。
由于对我的服务器的 ajax 调用,所讨论的对象是 xhr.response
。
您的 "object" 不是对象,而是字符串。您需要先解析它才能使用它
myObj = JSON.parse(myObj);
for(var value in myObj){
console.log(myObj[value]);
}
您的对象必须是字符串,请参见下面的示例。您必须首先将其解析回 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>');
}