Как получить значение из ключа Как это «Имя» из объекта JSON? - PullRequest
0 голосов
/ 25 января 2019

У меня есть такой объект JSON, и я хочу получить значение ключа "Имя" и "Фамилия"

data={ 
{ 
"objects":[ 
{ 
"ID":"1",
"Country":"Sudan",
"First-Name":"Noemi",
"Last-Name":"Harris"
},
{ 
"ID":"2",
"Country":"Honduras",
"First-Name":"Carol",
"Last-Name":"Mould"
},
{ 
"ID":"3",
"Country":"Togo",
"First-Name":"Dakota",
"Last-Name":"Tindall"
},
{ 
"ID":"4",
"Country":"Lebanon",
"First-Name":"Penelope",
"Last-Name":"Donovan"
},
{ 
"ID":"5",
"Country":"Bahrain",
"First-Name":"Rufus",
"Last-Name":"Baker"
}
]}

Я пробовал этот JQuery, но не смог получить значение

$each(data.objects,function(index,value){
console.log(value.First-Name);

}) Пожалуйста, помогите мне в этой проблеме.

Ответы [ 4 ]

0 голосов
/ 25 января 2019

jQuery обнаруживает .First-Name как .First, т. Е. Не принимает -key формы name-key. Итак, что вам нужно сделать, это ['First-Name']

data={ 
"objects":[ 
{ 
"ID":"1",
"Country":"Sudan",
"Frist-Name":"Noemi",
"Last-Name":"Harris"
},
{ 
"ID":"2",
"Country":"Honduras",
"Frist-Name":"Carol",
"Last-Name":"Mould"
},
{ 
"ID":"3",
"Country":"Togo",
"Frist-Name":"Dakota",
"Last-Name":"Tindall"
},
{ 
"ID":"4",
"Country":"Lebanon",
"Frist-Name":"Penelope",
"Last-Name":"Donovan"
},
{ 
"ID":"5",
"Country":"Bahrain",
"Frist-Name":"Rufus",
"Last-Name":"Baker"
}
]}

   $.each(data.objects,function(index,value){
     console.log("First name: "+value['Frist-Name']);
     console.log("Last name: "+value['Last-Name']);
   });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
0 голосов
/ 25 января 2019

Вам необходимо использовать квадратную скобку, например, так:

const data = {
  "objects": [{
      "ID": "1",
      "Country": "Sudan",
      "First-Name": "Noemi",
      "Last-Name": "Harris"
    },
    {
      "ID": "2",
      "Country": "Honduras",
      "First-Name": "Carol",
      "Last-Name": "Mould"
    },
    {
      "ID": "3",
      "Country": "Togo",
      "First-Name": "Dakota",
      "Last-Name": "Tindall"
    },
    {
      "ID": "4",
      "Country": "Lebanon",
      "First-Name": "Penelope",
      "Last-Name": "Donovan"
    },
    {
      "ID": "5",
      "Country": "Bahrain",
      "First-Name": "Rufus",
      "Last-Name": "Baker"
    }
  ]
}

$.each(data.objects, function(index, value) {
    console.log(value["First-Name"]);
    console.log(value["Last-Name"]);
})
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>

Вы также можете сделать это с чистым JavaScript:

const data = {
  "objects": [{
      "ID": "1",
      "Country": "Sudan",
      "First-Name": "Noemi",
      "Last-Name": "Harris"
    },
    {
      "ID": "2",
      "Country": "Honduras",
      "First-Name": "Carol",
      "Last-Name": "Mould"
    },
    {
      "ID": "3",
      "Country": "Togo",
      "First-Name": "Dakota",
      "Last-Name": "Tindall"
    },
    {
      "ID": "4",
      "Country": "Lebanon",
      "First-Name": "Penelope",
      "Last-Name": "Donovan"
    },
    {
      "ID": "5",
      "Country": "Bahrain",
      "First-Name": "Rufus",
      "Last-Name": "Baker"
    }
  ]
}

data.objects.forEach(function(value) {
    console.log(value["First-Name"]);
    console.log(value["Last-Name"]);
});
0 голосов
/ 25 января 2019

Для начала у вашего объекта есть лишний {сверху.ниже ответ.

const data={ 
//{
"objects":[ 
{ 
"ID":"1",
"Country":"Sudan",
"First-Name":"Noemi",
"Last-Name":"Harris"
},
{ 
"ID":"2",
"Country":"Honduras",
"First-Name":"Carol",
"Last-Name":"Mould"
}
]};

for(let char in data.objects){
    console.log(data.objects[char]['First-Name']);
    console.log(data.objects[char]['Last-Name']);
}
0 голосов
/ 25 января 2019

пожалуйста, попробуйте это, каждая часть может быть не правильно.

var j_data = JSON.parse(data)
foreach(var item in j_data.objects)
{
console.log(item.First_Name);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...