我正在为无法解决的错误而烦恼。我有以下内容;
JSON格式
{"products": [ { "product_id" : "123", "product_data" : { "image_id" : "1234", "text" : "foo", "link" : "bar", "image_url" : "baz" } },{ "product_id" : "456", "product_data" : { "image_id" : "1234", "text" : "foo", "link" : "bar", "image_url" : "baz" } } ]}
和下面的jQuery
function getData(data) { this.productID = data.product_id; this.productData = data.product_data; this.imageID = data.product_data.image_id; this.text = data.product_data.text; this.link = data.product_data.link; this.imageUrl = data.product_data.image_url; } $.getJSON("json/products.json").done(function (data) { var allProducts = data.map(function (item) { return new getData(item); }); });
但是我收到一个错误,认为map.data未定义为函数?看着它,我不知道什么是行不通的,因为我已将其从以前使用的代码复制到新项目中。唯一不同的是JSON源。上一个没有{"products":[]括号之前的部分。这是什么让我失望吗?
{"products":
对象,{}在JavaScript没有方法.map(),它只是为数组,[]。
{}
.map()
[]
因此,为了使您的代码正常工作,请更改data.map()为,data.products.map()因为products您可以对其进行迭代。
data.map()
data.products.map()
products