我在尝试将某些Json数据转换为特定格式时遇到了一些问题。
我基本上需要这个Json数据:
{
query: [ ],
products:
[
{
title: "title 1",
price: "6.00",
magazine: "magazine name 1",
image: "/p/c/pc_90_cover.jpg",
type: "Magazine",
market: "Technology",
zinio: "http:www.zinio.com",
newsstand: "http://www.link1.php"
},
{
title: "title 2",
price: "6.00",
magazine: "magazine name 2",
image: "/p/c/pc_90_cover.jpg",
type: "Magazine",
market: "Technology",
zinio: "http:www.zinio.com",
newsstand: "http://www.link2.php"
},
{
title: "title 3",
price: "6.00",
magazine: "magazine name 3",
image: "/p/c/pc_90_cover.jpg",
type: "Magazine",
market: "Technology",
zinio: "http:www.zinio.com",
newsstand: "http://www.link3.php"
}
]
进入这个javascript数组:
var arrProducts = [
title: "{{ product.title }}",
url: "{{ product.url }}",
label: "{{ product.title }}",
magazine: "{{ product.magazine }}",
image: "{{ product.imageThumb }}",
newsstand: "{{ product.newsstand }}",
kindle: "{{ product.kindle }}",
barnesnoble: "{{ product.barnesnoble }}",
zinio: "{{ product.zinio }}",
kobo: "{{ product.kobo }}",
waterstones: "{{ product.waterstones }}",
type: "{{ product.type }}",
},
];
我尝试过使用:
var allProducts = $.get("http://localhost:8888/web/app_dev.php/api/v1/search/search.json, function(data) {
var productsArray = data.products;
console.log(productsArray);
});
但是该方法不能以我需要的格式构建数组。 Console.log输出一堆对象。也许每个循环可能是一个解决方案? - 感谢任何帮助,我的Javascript不是很棒!
答案 0 :(得分:2)
使用http://jsonlint.com验证您的json。如果它不会通过那里,它也不会通过ajax。您的示例在对象键和起始大括号上缺少双引号并且有额外的逗号,并且当ajax使用时,您的文件不应包含var arrProducts =
但是,如果在初始页面加载期间在页面中放置带有此文件的脚本标记,则会有所不同。然后需要var arrProducts =
并且对象键上的引号不是。然后,您只需循环变量arrProducts
修改强>
循环遍历第一个样本
$.getJSON( url, function(data) {
var productsArray = data.products;
$.each( productsArray, function( i, item){
console.log( 'Title is '+ item.title)
})
})
有很多关于如何解析json和循环对象和数组的信息......你尝试过搜索吗?