Json提供了javascript数组

时间:2012-10-29 12:59:58

标签: javascript jquery arrays json

我在尝试将某些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不是很棒!

1 个答案:

答案 0 :(得分:2)

使用http://jsonlint.com验证您的json。如果它不会通过那里,它也不会通过ajax。您的示例在对象键和起始大括号上缺少双引号并且有额外的逗号,并且当ajax使用时,您的文件不应包含var arrProducts =

但是,如果在初始页面加载期间在页面中放置带有此文件的脚本标记,则会有所不同。然后需要var arrProducts =并且对象键上的引号不是。然后,您只需循环变量arrProducts

,而不是ajax

修改

循环遍历第一个样本

$.getJSON( url, function(data) { 
    var productsArray = data.products;  
    $.each(  productsArray, function( i, item){ 

         console.log( 'Title is '+ item.title)

    })

})

有很多关于如何解析json和循环对象和数组的信息......你尝试过搜索吗?