Me estoy golpeando la cabeza contra un error que no sé cómo solucionarlo. Tengo lo siguiente;
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"
}
}
]}
y el siguiente 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);
});
});
Sin embargo, recibo un error de que map.data no está definido como función. Mirándolo, no sé qué es lo que no funciona, ya que lo he copiado en un nuevo proyecto a partir del código usado anteriormente. Lo único diferente es la fuente JSON. El anterior no tenía la {"products":
parte antes de los corchetes []. ¿Es esto lo que me desconcierta?