我正在检索一个Json数据集,需要构建一个名为'arrProducts'的javascript数组。我的下面的代码是错误的,但在正确的行。有人可以帮忙??
var allProducts = $.get("http://localhost:8888/web/app_dev.php/api/v1/search/search.json",
function(data) {
var productsArray = data.products;
var arrProducts = '';
$.each(productsArray, function(index, product) {
arrProducts['name'] = product.name;
arrProducts['title'] = product.title;
arrProducts['price'] = product.price;
});
});
答案 0 :(得分:1)
这应该做你想要的:
var allProducts = $.get("http://localhost:8888/web/app_dev.php/api/v1/search/search.json",
function(data) {
var productsArray = data.products;
var arrProducts = productsArray;
});
productsArray
已经采用您要构建的格式,因此您应该直接使用data.products
。
var allProducts = $.get("http://localhost:8888/web/app_dev.php/api/v1/search/search.json",
function(data) {
console.log(data.products);
});
答案 1 :(得分:1)
var allProducts = $.get("http://localhost:8888/web/app_dev.php/api/v1/search/search.json",
function(data) {
var productsArray = data.products;
var arrProducts = []; //This needs to be an array not a string.
$.each(productsArray, function(index, product) {
var prod = {};//make a new product for each iteration
prod['name'] = product.name;
prod['title'] = product.title;
prod['price'] = product.price;
arrProducts.push(prod); //add the product to thearray of products
});
});
正如Kevin B所指出的,看起来data.products已经是你要采用的格式的对象数组,所以这种“转换”似乎毫无意义。
答案 2 :(得分:0)
您只需使用以下代码创建一个数组:
var arrProducts = [];
其余代码将满足您的目的
但是,正如评论所述,这将创建一个三元素关联数组,它将在每个迭代中被覆盖。你需要重新思考你的结构:multidimensioanl数组?对象数组?
答案 3 :(得分:0)
这个怎么样?
var arr;
var allProducts = $.getJSON("http://localhost:8888/web/app_dev.php/api/v1/search/search.json",
function(data) {
arr = jQuery.makeArray(data);
});
注意:
您需要使用getJSON方法,以便最终得到一个已经解析的对象,然后您可以在回调中使用它。至于makeArray方法http://api.jquery.com/jQuery.makeArray/