解決方法がわからないエラーに頭を悩ませています。次のようなエラーがあります。
翻訳
{"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":
[] 括弧の前の部分がありませんでした。これが私を混乱させているのでしょうか?
ベストアンサー1
JavaScriptのオブジェクト{}
にはメソッドがありません.map()
。配列、[]
。
したがって、コードを機能させるには、data.map()
を に変更します。これは、反復処理できる配列だdata.products.map()
からです。products