我有一个返回 JSON 数据(附加数据)的 ajax 调用。
将数据转换为字符串后,如下所示:
{
"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
}
]
}
现在,当我在 Firefox 中打印 JSON 响应时,它看起来像:
[Object { companyName="TriStar Inc.", shipmentDate=null, transMode="NDAY", more...}, Object { companyName="Carbo Box", shipmentDate=null, transMode="COUR", more... } ]
我的问题是,如何从此响应中提取 companyName 和 customerName 字段。以下无效:
load: function(response){
for(var i in response){
console.log(response.shipments[i].companyName);
}
最佳答案
如果得到的字符串是json,需要先解析它。
var obj = JSON.parse(jsonString);
现在你有了一个正确的对象文字,并且可以正常访问它
var payment = obj.shipments;
shipments
现在是一个 JavaScript 数组...
for(var i = 0; i < shipments.length; i++){
console.log(shipments[i].companyName);
}
请注意,不应在数组上使用 for(var i in x)
构造。
关于javascript - 从 Ajax 响应中摘录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8902846/