Как я могу разобрать массив json из объекта json?

У меня есть объект json, возвращаемый из запроса на получение в actjs. Я хочу получить ключевые и ценностные элементы из этого.

{"return":"Success",

"Items": [

{"Name":"centracore", "Type":"rollover" ,  "Os":"Windows",  "Level":"1", "Language_Used":"Assembly", "Size":"4mb"},

{"Name":"centracore", "Type":"Atype" ,   "Os":"Linux"  ,  "Level":"3", "Language_Used":"C++"     , "Size":"4mb"},

{"Name":"centracore", "Type":"random" ,  "Os":"OSX"    ,  "Level":"2", "Language_Used":"C"       , "Size":"4mb"}

]}

Я заметил, что могу получить доступ к значениям вручную, используя код ниже.

Имейте в виду, что this.state.stuff содержит мой объект json. Мой формат json формат плох для того, что я пытаюсь сделать?

if(this.state.authenticated ){
            {this.GetPage.bind(this)}
            let x = this.state.stuff; Object.entries(this.state.stuff).map((type,item) => {

            console.log(type[1][0])
            console.log(type[1][1])
            console.log(type[1][2])
          })

1 ответ

Решение

Насколько я понимаю, вы хотите получить ключ и значения в массивах Object Items, поэтому вам нужно отобразить массив элементов, а затем key, values из полученного предмета с Object.entries()

Вы можете сделать это как

 if(this.state.authenticated ){
        {this.GetPage.bind(this)}
        this.state.stuff.Items.map((item, index) => {
             Object.entries(item).forEach([key, value], () => {
                    console.log(key, value)
             })

      })

Рабочий пример

var obj = {"return":"Success",

"Items": [

{"Name":"centracore", "Type":"rollover" ,  "Os":"Windows",  "Level":"1", "Language_Used":"Assembly", "Size":"4mb"},

{"Name":"centracore", "Type":"Atype" ,   "Os":"Linux"  ,  "Level":"3", "Language_Used":"C++"     , "Size":"4mb"},

{"Name":"centracore", "Type":"random" ,  "Os":"OSX"    ,  "Level":"2", "Language_Used":"C"       , "Size":"4mb"}

]}
obj.Items.map((item, index) => {
       console.log( item);
       Object.entries(item).forEach(([key, value]) => {
              console.log(key, value)
       })

})

JSFIDDLE

Другие вопросы по тегам