我现在正在学习json并且让我的专长变得湿润可以说我想知道用json信息获取文件并使用它填充网站的最佳方法是什么。该文件将是这样的:
window.test =
{
"header1":
[
{ "title": "title1", "author": "author1"},
{ "title": "title2", "author": "author2"},
{ "title": "title3", "author": "author3"}
],
"header2":
[
{ "title": "title1", "author": "author1"},
{ "title": "title1", "author": "author2"},
{ "title": "title1", "author": "author3"}
]
};
然后代码会是这样的吗?
$(function() {
$.getJSON('jsonFile.js',function(data){
$.each(data, function(){
console.log(header1.title);
console.log(header2.title);
});
});
});
我再次成为JSON的新手,所以任何教程,建议,以及帮助我理解核心概念的任何内容都会有所帮助。
答案 0 :(得分:5)
你的json:
{
"header1":
[
{ "title": "title1", "author": "author1"},
{ "title": "title2", "author": "author2"},
{ "title": "title3", "author": "author3"}
],
"header2":
[
{ "title": "title1", "author": "author1"},
{ "title": "title1", "author": "author2"},
{ "title": "title1", "author": "author3"}
]
}
您的代码:
$(function() {
$.getJSON('jsonFile.js',function(data){
console.log(data.header1[0].title);
console.log(data.header2[0].title);
});
});
(可选)对data.header1和data.header2
执行each()答案 1 :(得分:0)
正如其他人所说,你应该删除window.text
和后面的分号。然后,当您直接读取文件时,它将被编码为文本,因此您需要在迭代之前将其转换为JSON。
您可以var jsonData = JSON.parse(data));
从数据参数中获取JSON对象。
答案 2 :(得分:0)
对于你拥有的JSON构造,下面的循环应该是正确的。
$.each(test, function(key, val) {
console.log(key); //this will print the header
$.each(val, function(index, val1) {
console.log(val1.title + ' ' + val1.author); //this will print the header contents
});
});