jQuery解析JSON对象和数组

3
在下面的代码中:
$.getJSON('<?php echo $this->Html->url(array('controller'=>'accounts', 'action'=>'get_customers_order_mcs')); ?>/'+customer_order_id,
                function(data){
                    var json_mc = data.MasterCarton.mc;
                    alert(json_mc);
                    $.each(json_mc,function(){
                         console.log(this);
                   });
             });

响应发送的数据如下-
{
     "MasterCarton":{
                         "id":"40",
                         "mc":"[
                                    "1":{\"mc_number\":\"Warehouse1\\\/2013-2014\\\/CO\\\/ABC Corp\\\/239\\\/101-Red-1\",\"config\":{\"S2\":10,\"S1\":10},\"delivered\":0},            "2":{\"mc_number\":\"Warehouse1\\\/2013-2014\\\/CO\\\/ABC Corp\\\/239\\\/101-Red-2\",\"config\":{\"S2\":10,\"S1\":10},\"delivered\":0},                  "3":{\"mc_number\":\"Warehouse1\\\/2013-2014\\\/CO\\\/ABC Corp\\\/239\\\/104-Black-3\",\"config\":{\"S1\":7,\"S2\":7,\"S5\":6},\"delivered\":0},               "4":{\"mc_number\":\"Warehouse1\\\/2013-2014\\\/CO\\\/ABC Corp\\\/239\\\/104-Black-4\",\"config\":{\"S1\":7,\"S2\":7,\"S5\":6},\"delivered\":0},              "5":{\"mc_number\":\"Warehouse1\\\/2013-2014\\\/CO\\\/ABC Corp\\\/239\\\/104-Black-5\",\"config\":{\"S1\":6,\"S2\":6,\"S5\":7},\"delivered\":0}
                               ]",
                         "delivery_note_id":"0",
                         "customer_order_id":"314"
                 }
}

mc内的json数组如下所示-

[
   "1":{
      "mc_number":"Warehouse1\/2013-2014\/CO\/ABC Corp\/239\/101-Red-1",
      "config":{
         "S2":10,
         "S1":10
      },
      "delivered":0
   },
   "2":{
      "mc_number":"Warehouse1\/2013-2014\/CO\/ABC Corp\/239\/101-Red-2",
      "config":{
         "S2":10,
         "S1":10
      },
      "delivered":0
   },
   "3":{
      "mc_number":"Warehouse1\/2013-2014\/CO\/ABC Corp\/239\/104-Black-5",
      "config":{
         "S1":6,
         "S2":6,
         "S5":7
      },
      "delivered":0
   }
]

我正在尝试使用jQuery解析其中的每个对象,每个对象如下所示 -
    {
   "mc_number":"Warehouse1\/2013-2014\/CO\/ABC Corp\/239\/101-Red-1",
   "config":{
      "S2":10,
      "S1":10
   },
   "delivered":0
}

为了获得上述对象,我使用以下jquery代码 -
$.each(json_mc,function(){
       // What should the code be so as to get each individual objects.         
});

这是每次使用.each时我应该得到的结果-

这是每次使用.each时我应该得到的结果-

   {
      "mc_number":"Warehouse1\/2013-2014\/CO\/ABC Corp\/239\/101-Red-1",
      "config":{
         "S2":10,
         "S1":10
      },
      "delivered":0
   }
1个回答

7
你需要的是每次迭代都被设置的this
$.each(json_mc,function(){
    console.log(this);
});

更新

根据您所展示的原始响应,您可能需要再次对其进行解码:

$.each($.parseJSON(json_mc), function() {
    console.log(this);
});

谢谢你的回答,杰克。但是当我尝试使用你的解决方案时,我得到了 [, {, ", m, c……等等。所以你能否建议一种获取从{到}整个对象的方法。 - Ganesh Yoganand
@GaneshYoganand 它在这里运行良好。你得到的结果可能是由于你没有展示的代码引起的。 - Ja͢ck
我得到的日志是这样的。字符串 { 0= "m" } add_sales_invoice (第294行) 字符串 { 0= "c" } add_sales_invoice (第294行) 字符串 { 0= "_" } add_sales_invoice (第294行) 字符串 { 0= "n" } - Ganesh Yoganand
@GaneshYoganand 你需要分享一些代码,我不知道你在做什么数据处理。 - Ja͢ck
杰克,请看一下我编辑过的问题。我需要每个mc对象。我该怎么办? - Ganesh Yoganand

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接