2014-09-22 3 views
0

Я использую запрос получить от сервера API, и я делаю запрос, а затем сделать это:Javascript JSON массив

var resp = JSON.parse(response); 

Звоню сервера, предоставляющего 0001 & 0002 в качестве аргументов и после JSON .parse он возвращает массив, такие как:

{"0001":{"id":1},"0002":{"id":2}} 

Я знаю, что традиционно, если я были даны статические ответы, такие как

{"placeID":{"id":1},"placeID":{"id":2}} 

Я мог бы сделать это:

resp.placeId.id 

, но при условии, что имена возврата не всегда то же самое, как я могу получить доступ, что первое значение resp.0001.id учитывая, что 0001 не всегда может быть возвращаемое значение?

+0

Если вы используете jquery, вы можете легко сделать это с помощью $ .each (objec, function (key, value) {...}); ' –

+4

Это не массивы, они являются объектами, и вам нужно [доступ их как таковые] (http://stackoverflow.com/questions/8312459/iterate-through-object-properties). – CodingIntrigue

+1

Вы всегда можете использовать 'resp [" 0001 "]' ... –

ответ

1

Используйте петлю for...in.

for(var property in resp) { 
    console.log(property + ": " + resp[property]); 
} 
0

Вы можете получить доступ к элементу «0001» в ответ, как это:. соответственно [ «0001»] идентификатор Так вы говорите, что вы предоставляете идентификатор в запросе, Вы, вероятно, хранят его где-то в переменной.

Если вы действительно хотите получить в ответ элемент, вы не можете использовать JSON.parse, потому что вы потеряете информацию о заказе, как только вы сосете эти данные в объект. И если вам нужно заботиться о порядке элементов, тогда JSON плохо сформирован и должен использовать массив вместо объекта верхнего уровня.

Смежные вопросы