як отримати доступ до масиву в масиві в json файлі

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" }
]}

Як я можу посилатися на значення в масиві домашніх тварин. як показано вище, я можу посилатися на значення імені, але коли я намагаюся посилатися на значення тварини всередині тварин. він повертає просто [об'єкт об'єкта]

3
@ code маніяк Як PLS ??
додано Автор codebeast, джерело
Масив у масиві ... назва не збігається з фактичною проблемою.
додано Автор Jai, джерело
Оператор @CodeManiac OP повинен виконувати ітерацію об'єктів у масиві.
додано Автор Jai, джерело
myObj.pets [0] .name має повернути Fido.
додано Автор Shilly, джерело
Ну, вам потрібно stringify .
додано Автор Vivek jain, джерело

5 Відповіді

Вам потрібно зациклювати "домашніх тварин"

  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 function.Hope це допоможе вам.

1
додано
Сподіваюся, що це вирішить ваші проблеми.
додано Автор ArunJaganathan, джерело

спробуйте

myObj.pets.forEach(function (pet) {
    console.log(pet);//What you need is probably *pet.name*
});
1
додано

Доступ доступний таким чином * редагувати: 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);
        });
1
додано
Що ж таке $ ???
додано Автор Teemu, джерело

Спробуйте це.

    var pets= myObj.pets;
    for(var i=0;i
0
додано

Ви можете використовувати для ... циклу для перебору масиву

var pets = [
{ "animal":"dog", "name":"Fido" },
{ "animal":"cat", "name":"Felix" },
{ "animal":"hamster", "name":"Lightning" }]; //example


for(var item of pets)
{
console.log(item); //for animal use item.animal
}

Сподіваюся, ви вже аналізуєте файл JSON за допомогою JSON.parse ()

0
додано
@Devinder, будь ласка, редагуйте. як запропоновано CodeF0x.
додано Автор Jai, джерело
Для вашого рішення потрібно створити абсолютно новий масив. Ви не використовуєте дані OP.
додано Автор CodeF0x, джерело
Так, відредагував свою відповідь і написав коментар, щоб згадати, що це, наприклад,.
додано Автор Devinder, джерело
ІТ КПІ - JavaScript
ІТ КПІ - JavaScript
504 учасників

співтовариство javascript розробників в Telegram