javascript - 从 Ajax 响应中摘录

标签 javascript ajax json

我有一个返回 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/

相关文章:

javascript - 如何在 Ember 中查找包含关联 promise 的记录?

javascript - jQuery LightSlider 不工作,但在 JSFiddle 中工作得很好

jquery - 无效的 JSON 类型 MVC 3

javascript - 在 Internet Explorer 中使用 JavaScript,如何在不刷新页面的情况下清除内存?

php - 如何在 ajax 脚本中将变量从表单传递到 php 页面?

java - 如何在Java中解析具有分隔的json对象的文本文件?

php - 使用PHP从JSON获取数据

javascript - 在 React 中使用 getFieldDecorator 嵌套 Antdesign 表单

javascript - 如何使用 apply 创建一个新的 Backbone View

javascript - 如何将javascript变量值分配给php变量