2016-06-22 3 views
0

Я пытаюсь пропустить объект JSON с помощью javascript. Причина, по которой он является объектом, а не массивом, заключается в том, что доступ к тем же данным осуществляется с помощью XAMARIN и C# NewtonJSON работает лучше с только Объекты JSON вместо сочетания объектов и массивов.Невозможно выполнить цикл через объект JSON Javascript

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

CODE: NULL 
VALUE:{ 
    USER24:{id: "24", business: "25", username: "test1", firstName: "test1", lastName: "test1", level: "0",…} 
    USER25:{id: "25", business: "25", username: "test2", firstName: "test2", lastName: "test2", level: "0",…} 
    USER26:{id: "26", business: "25", username: "test3", firstName: "test3", lastName: "test3", level: "0",…} 
    USER27:{id: "27", business: "25", username: "test4", firstName: "test4", lastName: "test4",…} 
    USER28:{id: "28", business: "25", username: "test5", firstName: "test5", lastName: "test5",…} 
    USER29:{id: "29", business: "25", username: "test6", firstName: "test6", lastName: "test6", level: "0",…} 
    USER30:{id: "30", business: "25", username: "test7", firstName: "test7", lastName: "test7", level: "0",…} 
} 
EXTRA: NULL 

Проблема у меня, когда я Переберите data.VALUE получить ключи и значения USER24 вместо ключей и значений data.VALUE. Когда я пытаюсь пройти через только данные Я получаю ключи КОД, VALUE, EXTRA, как и следовало ожидать.

Независимо от того, что я размещаю в цикле, я не получу ключи и значения USER24, USER25, USER26, ... Это то, что я хочу. Ниже я фрагмент из цикла Javascript Я использую:

for(var key in data.VALUE){ 
    if(data.VALUE.hasOwnProperty(key)){ 
     console.log('key:'+key+', val:'+data.VALUE[key]); 
    } 
    } 

Все, что я вернусь из этого:

key:id, val:24 
key:business, val:25 
key:username, val:test1 
key:firstName, val:test1 
key:lastName, val:test1 
key:level, val:0 
key:email, val:[email protected] 
key:phone, val:null 
key:isAdmin, val:true 

Что совершенно неправильно!

Я не уверен, что еще я должен сделать для этого, я попытался с помощью $ .each из JQuery, я не использовал новый пусть [ключ, значение], как это далеко на данный момент слишком новый, чтобы полагаться.

Если вам нужна дополнительная информация или фрагменты кода, можете задать вопрос! Спасибо за помощь!

Вот картину JSON на вкладке предварительного просмотра в хроме (минус некоторые конфиденциальные данные):

enter image description here

+0

JSON не соответствует действительности, каков формат переменной 'data' в JavaScript? – UsainBloot

+0

'console.log'' data.VALUE' перед циклом. Это возвращает объект, который вы ожидаете? –

+0

'for (var key in data.VALUE)'. Вы получаете каждый ключ в data.VALUE, поэтому, конечно, вы не получите USER24, USER25 и т. Д. –

ответ

0

Вы можете сделать это с помощью $ .each из JQuery, как этот

$.each(data.VALUE, function (i, key) { 
     $.each(key, function (j,k) { 
       console.log('key:'+j+', val:'+k); 
     }); 
    }); 

Если вы хотите получить к нему доступ из javascript, вы получите каждый ключ в объекте data.VALUE.USER24.

for (var key in data.VALUE.USER24) { 
    if(data.VALUE.USER24.hasOwnProperty(key)){ 
    console.log('key:' + key + ', val:' + data.VALUE.USER24[key]); 
    } 
} 
Смежные вопросы