Estrai dalla risposta di Ajax

Ho una chiamata ajax che restituisce i dati JSON (Data Attached). Dopo aver convertito i dati in String, questo è come si presenta come:

{ "shipments":[ { "companyName":"TriStar Inc.", "shipmentDate":null, "transMode":"NDAY", "paid":true, "delDate":null, "custRefInfo":{ "customerName":"DAISY N.", "customerZip":"90544" }, "orderStatus":true }, { "companyName":"Carbo Box", "shipmentDate":null, "transMode":"COUR", "paid":true, "delDate":null, "custRefInfo":{ "customerName":"TOM K", "customerZip":"07410" }, "orderStatus":true } ] } 

Ora quando printing la risposta JSON in Firefox, mi sembra:

 [Object { companyName="TriStar Inc.", shipmentDate=null, transMode="NDAY", more...}, Object { companyName="Carbo Box", shipmentDate=null, transMode="COUR", more... } ] 

La mia domanda è, come faccio a estrarre il field companyName e customerName da questa risposta. Il seguente lavoro non funziona:

  load: function(response){ for(var i in response){ console.log(response.shipments[i].companyName); } 

se si ottiene una string che è json, è necessario analizzarlo innanzitutto.

var obj = JSON.parse(jsonString);

ora hai un object appropriato letterale e puoi accedervi normalmente

var shipments = obj.shipments;

shipments sono ora un arrays javascript …

 for(var i = 0; i < shipments.length; i++){ console.log(shipments[i].companyName); } 

notare che non dovresti utilizzare il for(var i in x) build su arrays.

 response.shipments[i].companyName