Не понимаю, как использовать jQuery $.each для итерации этого JSON
Я получаю JSON с моего сервера и хочу установить значения полей ввода на веб-странице. Пары JSON являются идентификатором и значением входных данных. Тест JSON выглядит так
[{"city":"Rochester, Monroe County","country":"US","streetAddress":"12 Gibbs Street"}]
Реальный JSON будет намного длиннее с большим количеством пар ключ-значение в одном объекте.
Когда я использую это жестко закодированное утверждение, оно устанавливает входное значение.
$('#city').val( responseParsed[0].city ); //this sets the city input to a value
Я попытался расширить / автоматизировать это с $.each. Я пытаюсь научиться им пользоваться. Я просто не могу понять это. Я чувствую себя плотным, в данный момент, после многих попыток. Вот код для опции успеха в ajax.
success: function ( response ) {
if ( response ) {
responseParsed = JSON.parse( response );
$.each( responseParsed, function( key, value ){
$('#key').val( responseParsed[0].key );
console.log( $('#key').val( responseParsed[0].key ) + '|eachItem' ); // [object Object]|eachItem only once & input values do not change
});
}
2 ответа
Вам не нужно использовать responseParsed
внутри вашего $.each
, Вот что key
а также value
параметры означают.
Ваш value
(или же this
) является текущим элементом массива.
$.each(responseParsed, function(key, value){
$('#city').val(value.city);
});
Чтобы получить каждый ключ от объекта, вам нужен другой $.each
:
$.each(responseParsed, function(index, data){
$.each(data, function(key, value){
$('#'+key).val(value);
console.log(key, value);
});
});
Я думаю, что вы хотите это:
success: function ( response ) {
if ( response ) {
responseParsed = JSON.parse( response );
$.each( responseParsed[0], function( key, value ){
$('#' + key).val(value);
});
}