2016-07-09 2 views
0

У меня есть проект MVC5, который использует этот JQuery AJAX называютСинтаксический JSON массив строк в JQuery

$.ajax({ 
     url: "/ClientDetails2/" + document.getElementById('clientid').value, 
     type: "GET", 
     dataType: "json" 
    }) 
    .done(function (json) { 
     $('#FirstName').text(json['Client'].FirstName); 

     $.each(json['Cases'],   <----- 
      function(value) {   <----- 
       console.log(value); <----- 
      });      <----- 
    }); 

вернуть этот JSON:

{ 
    Client: { 
     Id: 1, 
     LastName: "Clark", 
     FirstName: "Keith", 
     PrimaryPhone: "(555) 555-1212", 
     Email: "[email protected]" 
    }, 
    Cases: [ 
     "Case1", 
     "Case2", 
     "Case3" 
    ] 
} 

$('#FirstName').text(json['Client'].FirstName); работает отлично и обновляет DOM правильно.

Куда я повесил трубку, итерации через Cases.

Что мне здесь не хватает?

Спасибо, Кит Кларк

+0

проверить это [demo] (https://jsfiddle.net/15s0qL0x/) – guradio

+0

Спасибо за это, но мне нужно иметь возможность итерации с использованием опции '.each', поскольку я никогда не буду знать, сколько элементов находится в что массив –

+0

проверить это обновление [demo] (https://jsfiddle.net/15s0qL0x/2/) – guradio

ответ

1

$.each() имеет индекс два параметра и значение

var json = { 
 
    Client: { 
 
     Id: 1, 
 
     LastName: "Clark", 
 
     FirstName: "Keith", 
 
     PrimaryPhone: "(555) 555-1212", 
 
     Email: "[email protected]" 
 
    }, 
 
    Cases: [ 
 
     "Case1", 
 
     "Case2", 
 
     "Case3" 
 
    ] 
 
}; 
 
      
 
$.each(json['Cases'], function(index, value) {   
 
     console.log(index +' -> '+value); 
 
});  
 
         
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>

+0

Спасибо за этот ответ ... У меня было прозрение, когда вы набирали свой ответ –

0

выяснял мой вопрос. Несмотря на то, что в массиве нет фактического анализа key:value, все еще есть подразумеваемый индекс, который должен учитываться в вызове функции. Я изменил свой код на это:

$.each(json['Cases'],   
     function(index,value) {   
      console.log(value); 
     }); 

и все работает как ожидается.

+0

, когда у вас возникли сомнения, посмотрите его в api docs – charlietfl