如何在javascript中访问json中的嵌套数组

时间:2015-05-27 22:08:05

标签: javascript arrays json

我有一个ajax调用,作为一个返回我有json对象。 我可以访问' status'等信息。或者' info'与

// handle a successful response
                        success : function(json) {
                            if (json.result == 'ok') {
                                console.log('sanity check - iccid:' + json.iccid);
                                console.log('sanity check - amount:' + json.amount);
                            } else if (json.result == 'error'){
                                console.log('sanity check - error: ' + json.info);
                            };

但在这个json对象中我有另一个数组:

[
    {
        "pk": 31,
        "model": "simcard.voucher",
        "fields": {
            "amount": 5,
            "voucher_no": "4762"
        }
    },
    {
        "pk": 32,
        "model": "simcard.voucher",
        "fields": {
            "amount": 5,
            "voucher_no": "4912"
        }
    }
]

首先,我想获得优惠券数量。我尝试使用json.vouchers.length,但我得到了字符数量。 然后我想迭代优惠券。用:

var v = json.vouchers;
 for(var i in v)
  {
   console.info( v[i].pk);
   console.info( v[i].model);
   console.info( v[i].fields.amount);
   console.info( v[i].fields.voucher_no);
   }

我收到错误TypeError: v[i].fields is undefined

如果我将整个json响应输出到控制台,我得到:

Object { amount=10,  iccid="894422",  vouchers="[{"pk": 31, "model": "simcard.voucher", "fields": {"amount": 5, "voucher_no": "4762"}}, {"pk": 32, "model": "simcard.voucher", "fields": {"amount": 5, "voucher_no": "4912"}}]"  }
希望你能指导我。 提前谢谢!

1 个答案:

答案 0 :(得分:2)

我认为你必须将你的json解析为js对象。

$( 'button' ).on('click' , nextQuestion).attr('class', "btn btn-success").html('Suivant') ;