Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQueryAjax成功数据只解析最后一个JSON节点的奇怪问题_Javascript_Php_Jquery_Json_Ajax - Fatal编程技术网

Javascript jQueryAjax成功数据只解析最后一个JSON节点的奇怪问题

Javascript jQueryAjax成功数据只解析最后一个JSON节点的奇怪问题,javascript,php,jquery,json,ajax,Javascript,Php,Jquery,Json,Ajax,因此,我有以下jQuery代码: function updateOrderSummary(orderID) { var returnString = orderID; $.ajax({ url: "library/getOrderSummary.php", type: "POST", data: ({returnString:returnString}), success: function(data){

因此,我有以下jQuery代码:

function updateOrderSummary(orderID) {
    var returnString = orderID;
    $.ajax({
        url: "library/getOrderSummary.php",
        type: "POST",
        data: ({returnString:returnString}),
        success: function(data){
            console.log(data);
        }
    });
}
运行此脚本时,控制台显示以下JSON:

{"orderDetails":{"orderItem":{"itemName":"351","itemQuantity":"2","itemID":"5-5331fbfd5e0e7","costPerPlay":"2"},"orderItem":{"itemName":"Demo","itemQuantity":"1","itemID":"5-54067191b71e8","costPerPlay":"1"},"orderItem":{"itemName":"314","itemQuantity":"1","itemID":"5-5331f5b41f9f4","costPerPlay":"1"}}}
格式化后,它看起来像这样(为了您的方便):

当我通过JSONLint(JSONLint.com)运行JSON时,它会进行验证,但当我将数据类型“JSON”添加到脚本中时,我似乎无法解析数据。(即:)

当我这样做时,我的控制台似乎只显示返回的JSON字符串的最后一个“节点”。我似乎无法像平常那样解析它

最终,我想要做的就是获取返回字符串中存在的“orderItems”的数量(在本例中为3),并显示每个字符串的“itemName”。比如说:

for (var a = 0; a < numNodes; a++) {
     returnString += data.orderDetails.orderItem[a].itemName;
}
for(var a=0;a
唉,我所做的一切似乎都不能让我深入到JSON


有什么想法吗?

问题是您的结构被设置为具有3个相同键的对象

因为对象键不能完全相同,所以整个属性都被重写了…只剩下最后一个

结构需要更改为对象数组

这样更合适

"orderDetails": [
         { "itemName": "351","itemQuantity": "2" ....},
         { "itemName": "567","itemQuantity": "34" ....}
]

将json结构更改为以下格式。将对象分组为数组,而不是具有相同键(orderItem)的对象

{
        "orderDetails": {
            "orderItem": [{
                "itemName": "351",
                "itemQuantity": "2",
                "itemID": "5-5331fbfd5e0e7",
                "costPerPlay": "2"
            },
            {
                "itemName": "Demo",
                "itemQuantity": "1",
                "itemID": "5-54067191b71e8",
                "costPerPlay": "1"
            },
             {
                "itemName": "314",
                "itemQuantity": "1",
                "itemID": "5-5331f5b41f9f4",
                "costPerPlay": "1"
            }
          ]
        }
    }
"orderDetails": [
         { "itemName": "351","itemQuantity": "2" ....},
         { "itemName": "567","itemQuantity": "34" ....}
]
{
        "orderDetails": {
            "orderItem": [{
                "itemName": "351",
                "itemQuantity": "2",
                "itemID": "5-5331fbfd5e0e7",
                "costPerPlay": "2"
            },
            {
                "itemName": "Demo",
                "itemQuantity": "1",
                "itemID": "5-54067191b71e8",
                "costPerPlay": "1"
            },
             {
                "itemName": "314",
                "itemQuantity": "1",
                "itemID": "5-5331f5b41f9f4",
                "costPerPlay": "1"
            }
          ]
        }
    }