2016-01-09 2 views
-1

У меня есть объект JSON, который structrued как следующий ...Получение значений из JSON объекта

[{"staffId":4,"forename":"Testf","surname":"Tests","location":"Testl","phoneNumber":"00000000000","email":"Teste"}] 

Может кто-нибудь посоветовать, как я хотел бы получить ключи и значения и добавить к Массивы в JavaScript или JQuery. Для примера ...

var headings = ["staffId","forename","surname"]; 
var staff = [["1","Joe","Bloggs"],["2","Stack","Overflow"]]; 
+0

где информация о персонале в вашем старом json? – gurvinder372

+0

В первом примере выше. – Jasper

+0

где '' '' '' 'Bloggs'' в этом первом примере выше? – gurvinder372

ответ

4

для одного такого объекта JSON будет

var json = [{"staffId":4,"forename":"Testf","surname":"Tests","location":"Testl","phoneNumber":"00000000000","email":"Teste"}]; 

var headings = Object.keys(json[0]); 
var staff = []; 
for (var key in json[0]) 
{ 
    staff.push(json[0][ key ]); 
} 
console.log(headings); 
console.log(staff); 

для нескольких, вам нужно повторить их l икэ

for (var counter = 0; counter < json.length; counter++) 
{ 
    var jsonObj = json[ counter ]; 
    //same code for all json objects as above 
} 
+0

это, похоже, выполняет эту работу, приветствует знание. – Jasper

+0

еще одна вещь ... Знаете ли вы, как я бы добавил сотрудников в отдельные массивы в массиве персонала? например [[Массив [5]], [массив [5]] – Jasper

-1

Вы можете разобрать JSON с JQuery

var json = $.parseJSON(data); 

Вызов значения

alert(json.name); 
2

Если я правильно понимаю, что вы хотите сделать что-то вроде этого:

var data = [ 
    { 
     'staffId': 1, 
     'forename': 'Joe', 
     'surname': 'Bloggs', 
     'location': 'Testl1', 
     'phoneNumber': '0770....', 
     'email': 'Teste1' 
    }, 
    { 
     'staffId': 4, 
     'forename': 'Testf', 
     'surname': 'Tests', 
     'location': 'Testl', 
     'phoneNumber': '07702671940', 
     'email': 'Teste' 
    } 
]; 

var headings = ["staffId","forename","surname"]; 

var result = data.map(function(item) { 
    return headings.map(function(heading) { 
     return item[heading]; 
    }); 
}); 

console.log(result); 

можно сопоставить/преобразовать ваш массив, используя Array.prototype.map().