Javascript 多维JSON结构问题
我有以下伪结构Javascript 多维JSON结构问题,javascript,jquery,json,Javascript,Jquery,Json,我有以下伪结构 [ {"product": { "id":"14", "product_title":"My Awesome Product!", "product_desc":"An awesome product.." } }, {"product": { "id":"15", "product_title":"My MORE Awesome Product
[
{"product":
{
"id":"14",
"product_title":"My Awesome Product!",
"product_desc":"An awesome product.."
}
},
{"product":
{
"id":"15",
"product_title":"My MORE Awesome Product!",
"product_desc":"An AWESOMER product..."
}
}
]
我是这样迭代的:
$.post('Ajax.php',function(res){
res = res.pop();
$.each(res,function(product){
alert(product.product_title);
});
});
但是,仅显示最后一个产品标题
。并不是所有的都能通过。
是我的代码,还是我的JSON结构?谢谢
编辑:.pop()的原因代码>:您的res=res.pop();行正在将res设置为res数组的最后一个元素。如果删除该行,它应该可以正常工作。$.post('Ajax.php',function(res){
$.post('Ajax.php', function(res) {
for (var i = 0, j = res.length; i < j; i++) {
console.log(res[i].product.product_title);
}
});
对于(变量i=0,j=res.length;i
试试这个,它应该显示2个产品名称。JSON结构很好。我的建议是使用简单的JavaScript迭代(
for
循环):
var-temp=
[
{“产品”:
{
“id”:“14”,
“产品名称”:“我最棒的产品!”,
“产品描述”:“一款很棒的产品”
}
},
{“产品”:
{
“id”:“15”,
“产品名称”:“我更棒的产品!”,
“产品描述”:“令人敬畏的产品…”
}
}
]
对于(变量i=0;i
如果要迭代,请不要弹出
$.post('Ajax.php',function(res){
$.each(res,function( index, value ){
alert( value.product.product_title );
});
});
此外,JSON结构有一些冗余,可以写成:
[
{
"id":"14",
"product_title":"My Awesome Product!",
"product_desc":"An awesome product.."
},
{
"id":"15",
"product_title":"My MORE Awesome Product!",
"product_desc":"An AWESOMER product..."
}
]
这意味着一系列的产品。您总是希望数组包含单一类型的内容。如果您想从服务器返回多个内容,这将是更合适的结构:
{
"products": [
{
"id":"14",
"product_title":"My Awesome Product!",
"product_desc":"An awesome product.."
},
{
"id":"15",
"product_title":"My MORE Awesome Product!",
"product_desc":"An AWESOMER product..."
}
],
"kittens": [
{
"id":"14",
"name":"kitty"
},
{
"id":"15",
"name": "kitty"
}
]
}
一系列产品和一系列小猫,而不是一系列产品和小猫。为什么
.pop()
?它不返回数组,而是返回数组最后一个索引中的任何内容,并将其从array@Esailija-请参阅-我的上一个问题:)这会遍历所有产品吗?在另一个问题中建议这样做的原因是因为数组只有一个元素。$.each将迭代数组中的每个元素,因此数组中有多少元素无关紧要。你不需要.pop()对不起,这里的网速太慢了。我拔下弹珠,试着用@Esailija的答案——这很有效。:)谢谢,这成功了!但是,值
不应该是每个
中的当前产品
?您的json结构是一个对象数组,每个对象都有一个元素产品
。因此值
(设置为res数组的每个元素)实际上是一个类似于:{“product”:{“id”:15,“product_title”:“…”}
的对象,这就是为什么在获得产品标题
之前,需要执行值.product
,以获取对象中的产品
元素
{
"products": [
{
"id":"14",
"product_title":"My Awesome Product!",
"product_desc":"An awesome product.."
},
{
"id":"15",
"product_title":"My MORE Awesome Product!",
"product_desc":"An AWESOMER product..."
}
],
"kittens": [
{
"id":"14",
"name":"kitty"
},
{
"id":"15",
"name": "kitty"
}
]
}