Как вывести данные json?

316
07 сентября 2018, 22:20

Доброй ночи. Уважаемые знатоки, подскажите, как прочесть данные типа json:

{
   "0":{
      "data":{
         "name":"vas",
         "fam":"hri"
      },
      "server_info":{
         "user_id":0,
         "pipe":"msg",
         "event":"message",
         "history":false
      }
   }
}

Я пытаюсь - resonse[0].data.name, но в ответ только:

[object Arguments]

. Как правильно счесть данные от туда?

Answer 1
var json = '{"0":{"data":{"name":"vas","fam":"hri"},"server_info":{"user_id":0,"pipe":"msg","event":"message","history":false}}}';
try {
    json = JSON.parse(json);
    for (var i in json) {
        console.log(json[i].data.name); // vas
    }
} catch (e) {
    console.log('Некорректный JSON: '+e);
}
Answer 2

Вы можете обращаться к свойствам объекта с помощью [].

resonse['0'].data.name

var resonse = { 
    "server_info": { 
      "user_id": 0, 
      "pipe": "msg", 
      "event": "message", 
      "history": false 
    }, 
  "0": { 
    "data": { 
      "name": "vas", 
      "fam": "hri" 
    } 
  } 
}; 
// При условии, что resonse выглядит так 
console.log(resonse['0'].data.name);

Answer 3

В цикле это будет примерно так

var responce = { 
   "0":{ 
      "data":{ "name":"vas" } 
   }, 
   "1":{ 
      "data":{ "name":"vas2" } 
   } 
} 
 
for(var i in responce){ 
  console.log(responce[i].data.name); 
}

Answer 4

Как правильно счесть данные от туда?

Если ничего за кадром не осталось, то так:

var res = { 
  "0": { 
    "data": { 
      "name": "vas", 
      "fam": "hri" 
    }, 
    "server_info": { 
      "user_id": 0, 
      "pipe": "msg", 
      "event": "message", 
      "history": false 
    } 
  } 
}; 
// При условии, что resonse выглядит так 
console.log(res[0].data.name);

UPD:

Если таких объектов много:

var res = { 
  "0": { 
    "data": { 
      "name": "vas", 
      "fam": "hri" 
    }, 
 
    "server_info": { 
      "user_id": 0, 
      "pipe": "msg", 
      "event": "message", 
      "history": false 
    } 
  }, 
  "1": { 
    "data": { 
      "name": "vas1", 
      "fam": "hri1" 
    }, 
 
    "server_info": { 
      "user_id": 0, 
      "pipe": "msg", 
      "event": "message", 
      "history": false 
    } 
  } 
}; 
// При условии, что resonse выглядит так 
Object.keys(res).forEach(function(i) { 
  console.log(res[i].data.name); 
})

READ ALSO
Бесконечная загрузка страницы

Бесконечная загрузка страницы

Подгружаю html с помощью js так:

251
Vue не реагирует на изменения объекта

Vue не реагирует на изменения объекта

Я тут учу vue и пишу простенький магазин для практикиИ не могу понять почему не обновляется корзина, то есть обновляется объект cart, но в разметке...

241
Как правильно подключить скрипт js(es6), чтобы Security Policy не ругался?

Как правильно подключить скрипт js(es6), чтобы Security Policy не ругался?

Refused to connect because it violates the following Content Security Policy directive: "default-src 'self'"Note that 'connect-src' was not explicitly set, so 'default-src' is used as a fallback

306