使用JSON

时间:2012-04-03 20:39:40

标签: jquery json

我现在正在学习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的新手,所以任何教程,建议,以及帮助我​​理解核心概念的任何内容都会有所帮助。

3 个答案:

答案 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构造,下面的循环应该是正确的。

DEMO

$.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
    });
});