2016-07-09 31 views
0

Ich habe ein MVC5 Projekt, das dieses jQuery AJAX verwendet nenntParsing JSON Array von Strings in 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); <----- 
      });      <----- 
    }); 

dieses JSON zurück:

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

Die $('#FirstName').text(json['Client'].FirstName); funktioniert gut und aktualisiert den richtig DOM.

Wo ich aufgehängt werde ist in Iterieren durch Cases.

Was fehlt mir hier?

Danke, Keith Clark

+0

Prüfung dieser [Demo] (https://jsfiddle.net/15s0qL0x/) – guradio

+0

Vielen Dank für das, aber ich brauche die '.each' Option laufen zu können, verwenden, wie ich nie wissen, wie viele Elemente sind in Dieses Array –

+0

überprüfen Sie diese aktualisierte [Demo] (https://jsfiddle.net/15s0qL0x/2/) – guradio

Antwort

1

$.each() nimmt zwei Parameter Index und Wert

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

Danke für diese Antwort ... Ich hatte die Epiphanie, wie Sie Ihre Antwort eingeben –

0

mein Problem herausgefunden. Auch wenn es keine tatsächliche key:value Verschachtelung im Array gibt, gibt es immer noch einen impliziten Index, der im Funktionsaufruf berücksichtigt werden muss. Ich habe meinen Code folgendermaßen geändert:

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

und alles funktioniert wie erwartet jetzt.

+0

wenn im Zweifel suchen Sie es in der api Dokumentation – charlietfl