Как извлечь информацию из вывода JSON - PullRequest
0 голосов
/ 25 июля 2010

У меня есть вывод json, который выглядит следующим образом ..

{
   "XXXX": {
      "name": "Dalvin Nieger",
      "work": [
         {
            "department": {
               "name": "Sales"
            },
            "start_date": "0000-00"
         }
      ],
      "link": "http://www.my-site.com/profile.php?id=XXXXX",
      "id": "XXXXXX"
   },
   "XXXXXXX": {
      "name": "Nick Mercer",
      "work": [
         {
            "department": {
               "name": "Marketing"
            },
            "start_date": "0000-00",
            "end_date": "0000-00"
         }
      ],
      "link": "http://www.my-site.com/profile.php?id=XXXXXX",
      "id": "XXXXXX"
   }
}

Где XXXX - это номер ID. сотрудника. Я хочу пройтись по данным и получить идентификатор №, имя, отдел, в котором он работает, и дату окончания для каждого сотрудника с использованием JavaScript.

Я ценю любую помощь.

Спасибо.

Ответы [ 3 ]

6 голосов
/ 25 июля 2010

Ваш JSON неверен - он заключен в массив, но вы не используете ключи в массивах JSON. Если вы измените внешние скобки ([) на фигурные скобки ({), вы сможете просто циклически перемещаться по ключам объектов JSON в JavaScript. См. здесь для получения инструкций.

2 голосов
/ 25 июля 2010

Я не уверен, что полностью понимаю вопрос, но будет ли это делать то, что вы хотите, если вы решите проблему с вашим JSON, как указано?

for(i in jsonData) {
  console.log("id is " + i);
  console.log("name is " + jsonData[i].name);
  console.log("department is " + jsonData[i].work[0].department.name);
  console.log("enddate is " + jsonData[i].work[0].end_date);
}
0 голосов
/ 10 сентября 2016

как только вы исправите json, оно должно выглядеть так и работать так

var jsonData = {
   "XXXX": {
      "name": "Dalvin Nieger",
      "work": {
            "department": {
               "name": "Sales"
            },
            "start_date": "0000-00"
         },
      "link": "http://www.my-site.com/profile.php?id=XXXXX",
      "id": "XXXXXX"
   },
   "XXXXXXX": {
      "name": "Nick Mercer",
      "work": {
            "department": {
               "name": "Marketing"
            },
            "start_date": "0000-00",
            "end_date": "0000-00"
         },
      "link": "http://www.my-site.com/profile.php?id=XXXXXX",
      "id": "XXXXXX"
   }
}
$.each(jsonData,function(id,data){
  var content = '<p>ID : '+id;
  if(typeof data == 'object')
    $.each(data,function(index,value){
        
     if(typeof value == 'object' && index=='work'){
       content += '<br/>'+index+' : '+value.department.name;
      }else
        content += '<br/>'+index+' : '+value;       
    });
  content += '</p>';
  $('#result').append(content);
   
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>

<div id="result">
  </div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...