所以我有以下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"}}}
格式化后,看起来像这样(为您方便):
{
"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时,它会进行验证,但是当我在脚本中添加dataType:“ json”时,似乎无法解析数据。 (即:)
function updateOrderSummary(orderID) {
var returnString = orderID;
$.ajax({
url: "library/getOrderSummary.php",
type: "POST",
data: ({returnString:returnString}),
dataType: "json",
success: function(data) {
console.log(data);
}
});
}
当我这样做时,控制台似乎只显示返回的JSON字符串的最后一个“节点”。而且我似乎无法像平常一样解析它。
最终,我要做的就是获取返回字符串中存在的“ orderItems”数量(在本例中为3),并为每个显示“ itemName”。所以像这样:
for (var a = 0; a < numNodes; a++) {
returnString += data.orderDetails.orderItem[a].itemName;
}
las,我似乎没有做任何事情让我深入到JSON。
有什么想法吗?
参考方案
将您的json结构更改为以下格式。代替具有相同key(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"
}
]
}
}
jQuery ajax发布电子邮件字段 - javascript我不确定为什么我无法发布电子邮件字段的内容,这是我的代码。<html> <head> <title></title> <script src="//code.jquery.com/jquery-1.11.2.min.js"></script> </head>…
无法在NetBeans中包含jQuery - javascript当我在Netbeans中包含如下所示的jQuery文件时,我的代码不起作用:<script type="text/javascript" src="js/jquery-1.3.2.js">` 而当我按以下步骤进行时它起作用:<script type="text/javascript"…
jQuery Ajax上传文件php即使没有内容也接收数组 - javascript它正在工作,但是在每次提交时,我什至都收到一个数组,甚至没有将文件添加到文件输入(多文件输入) postData = new FormData(this); $.ajax({ url: "/url", type: "POST", data: postData, cache: false, contentType: fa…
javascript popupwindow之后的行如何工作? - javascript好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…
用户刷新页面或导航到其他页面时,侧边栏上的其他广告 - javascript我有一个带有广告部分的侧边栏。当用户导航到其他页面或刷新页面时,我想在该部分上显示其他广告。我想轮播5-10个广告。每个广告都是一个脚本,因此包含10个以上的广告会减慢我的页面速度。在刷新时或用户导航到其他页面时轮播广告的最佳方法是什么?这是给我的wordpress博客的,但我不想使用插件。JS Fiddle<?php $ads = array(…