var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var myObj = JSON.parse(this.responseText);
document.getElementById("demo").innerHTML = myObj.name;
}
};
xmlhttp.open("GET", "json_demo.txt", true);
xmlhttp.send();
{
"name":"John",
"age":31,
"pets":[
{ "animal":"dog", "name":"Fido" },
{ "animal":"cat", "name":"Felix" },
{ "animal":"hamster", "name":"Lightning" }
]}
我该如何引用pets数组中的值。如上所示,我可以引用名称值,但是每当我尝试引用宠物中的动物值时,都可以引用该名称值。它只返回[object Object]
答案 0 :(得分:2)
您需要循环“宠物”。就像
var dataArry = {
"name":"John",
"age":31,
"pets":[
{ "animal":"dog", "name":"Fido" },
{ "animal":"cat", "name":"Felix" },
{ "animal":"hamster", "name":"Lightning" }
]}
dataArry.pets.forEach(function(eachPet) {
console.log(eachPet);
});
您需要使用foreach函数。希望对您有帮助。
答案 1 :(得分:1)
尝试一下:
myObj.pets.map(function(item){ console.log(item) })
这将为您提供以下结果:
{动物:“狗”,名字:“ Fido”}
{动物:“猫”,名称:“费利克斯”}
{动物:“仓鼠”,名称:“闪电”}
使用
来访问单个动物的名字myObj.pets.map(function(item){ console.log(item.name); })
获得动物使用:
myObj.pets.map(function(item){ console.log(item.animal); })
另一个选择是使用:
for(var pet of myObj.pets)
{
console.log(pet.animal); //for animal
console.log(pet.name); //for name
}
答案 2 :(得分:1)
尝试
myObj.pets.forEach(function (pet) {
console.log(pet); // What you need is probably *pet.name*
});
答案 3 :(得分:1)
尝试一下。
var pets= myObj.pets;
for(var i=0;i<pets.length;i++){
console.log(pets[i].name);
}
答案 4 :(得分:-1)
您可以这样访问* edit:使用jQuery.each() *
var person = {
"name":"John",
"age":31,
"pets":[
{ "animal":"dog", "name":"Fido" },
{ "animal":"cat", "name":"Felix" },
{ "animal":"hamster", "name":"Lightning" }
]};
$.each(person.pets,function (k,v) {
console.log(v.animal, v.name);
});