我是javascript的新手。我正在尝试以javascript格式阅读json数据。
data.json:
function initializeCarousel() {
return $('.your-class [data-slick-index="' + currentSlide + '"] a')
.map(function(el) {
return el.href;
})
.get()
.filter(function(href, pos, self) {
return self.indexOf(href) == pos;
})
.reduce(function(sequence, url) {
var productPromise = getProducts(url);
return sequence
.then(function() {
return productPromise;
})
.then(function(dataObj) {
$(".carousel2").append(dataObj.image);
// ... dataObj.name ...
// ... dataObj.price ...
}, function() {
return sequence;//skip over error
});
}, $.when())//resolved starter promise for the reduction
.then(function () {
$('.carousel2').slick({ speed: 500, autoplay: false, autoplaySpeed: 4000, arrows:false });
console.log("this is initialized");
});
}
读取数据并指定名称:
promises
但它对我不起作用。请帮我。我怎样才能正确阅读?
答案 0 :(得分:2)
var items = [];
$.getJson('data.json', function(data) {
$.each(data, function(index, value) {
items.push(value);
})
})
希望它对你有所帮助。
答案 1 :(得分:0)
我建议您检查一下json数据。
带有字符串数组的格式良好的json数据可以是:
["Hi", "Hello", "Test"]
如果您需要帮助来验证您的json数据,可以使用以下链接:http://pro.jsonlint.com/
关于你的问题,Pankaj Gupta的回答是一个很好的选择。
不要忘记在javascript语句的末尾使用分号。
var items = [];
$.getJson("data.json", function(data)
{
$.each(data, function(index, value)
{
items.push(value);
});
});
答案 2 :(得分:0)
1.您将name.toString()
替换为data
。然后它会工作。
var name = {
categories: []
};
$.getJSON('data.json', function(data) {
name.categories = data;
});
2.另外,您可以通过Helper对象进行设置。 Helper.setArray(name.categories, data);
代替name.categories = data;
。通常,我使用帮助程序进行解析和其他目的。
var Helper = {
clearArray: function(arr) {
if (arr && Array.isArray(arr)) {
arr.length = 0;
}
},
pushArray: function(arr1, arr2) {
if (arr1 && arr2 && Array.isArray(arr1)) {
arr1.push.apply(arr1, Array.isArray(arr2) ? arr2 : [arr2]);
}
},
setArray: function(arr1, arr2) {
this.clearArray(arr1);
this.pushArray(arr1, arr2);
}
}
答案 3 :(得分:-1)
首先,您需要创建javascript数组对象。
示例:强>
var categories = [];
var jsonobj;
$.getJSON('data.json', function(data) {
jsonobj = data;
});
for (i in obj) {
var temp = [];
temp.push(obj[i].'jsondata');
}
希望这是回答你的问题。您可以参考此link: