如何检索此JSON中存在的键值对

时间:2015-11-25 14:24:08

标签: jquery

我有以下JSON

var response ={
  "orderprintsummmary": [
    {
      "total": "512.70",
      "vendorname": "Inorbit Mall-Food Court01",
      "contact_email": "kiran@gmail.com",
      "crusting_name": "Cruts"
    }
  ]
}

我正在尝试以这种方式检索JSON中存在的所有项目

var jsonresponse = JSON.parse(response.orderprintsummmary[0]);
var total = jsonresponse[0].total;
var vendorname = jsonresponse[0].vendorname;
var contact_email = jsonresponse[0].contact_email;

未捕获的SyntaxError:意外的令牌o

但是,如果我单独检索它,这可以正常工作,如下所示

 var total = JSON.parse(response.orderprintsummmary[0].total);

但是我不想每次为每个值解析它(因为我在实际的resposnse中得到了近50个键值对)

https://jsfiddle.net/x1jhe35n/1/

2 个答案:

答案 0 :(得分:0)

您可以这样尝试:遍历每个索引的数据并获取相关属性。

var response ={
              "orderprintsummmary": [
                {
                  "total": "512.70",
                  "vendorname": "Inorbit Mall-Food Court01",
                  "contact_email": "kiran@gmail.com",
                  "crusting_name": "Cruts"
                },
                {
                      "total": "512.70",
                      "vendorname": "Inorbit Mall-Food Court01",
                      "contact_email": "kiran@gmail.com",
                      "crusting_name": "Cruts"
                    }
              ]
            }
    for(x in response['orderprintsummmary']){
        console.log(response['orderprintsummmary'][x].total);
    }

答案 1 :(得分:0)

只有response是字符串才能解析。因为它是你不需要解析的,因为response已经是一个对象了。

//Parse only if `response` is a string
//var jsonresponse = JSON.parse( response ).orderprintsummmary[0];

//If `response` is json then:
var jsonresponse = response.orderprintsummmary[0];

var total = jsonresponse.total;
var vendorname = jsonrespons.vendorname;
var contact_email = jsonresponse.contact_email;

var response ={
  "orderprintsummmary": [
    {
      "total": "512.70",
      "vendorname": "Inorbit Mall-Food Court01",
      "contact_email": "kiran@gmail.com",
      "crusting_name": "Cruts"
    }
  ]
}

var jsonresponse = response.orderprintsummmary[0];
             

var total = jsonresponse.total;
var vendorname = jsonresponse.vendorname;
var contact_email = jsonresponse.contact_email;


console.log(vendorname);