使用jQuery解析外部JSON文件

时间:2012-06-01 18:52:03

标签: javascript jquery xml ajax json

我有一个2 MB的JSON对象,我希望用jQuery解析。我将整个对象转储到名为“timeline.js”的文件中,我希望将其解析为数据集,以便根据需要获取记录。

我的数据集是作为XML文件启动的,但我读到JSON会更高效,因为我使用jQuery来提取数据并将其放在DOM中。

以下是我对象的第一条记录。如何解析此对象以获取“profileid”为1016的记录?

{
timeline:{
    record:[
        {
            profileid:1016,
            title:'Adam',
            parentprofileid:0,
            type:'Person',
            minzoomlevel:29,
            maxzoomlevel:66,
            isapproxstart:1,
            isapproxend:1,
            startdate:-4181,
            enddate:-3251,
            shortdescription:'Name means "red" or "man" he is...',
            article:'<div><span>The first member of...',
            status:22,
            scriptures:{
                scripture:[
                    {
                        profileid:1016,
                        scripturetext:'Genesis 2:7',
                        referencetext:'Birth'
                    },
                    {
                        profileid:1016,
                        scripturetext:'Genesis 5:4',
                        referencetext:'Death'
                    }
                ]
            }
        },

2 个答案:

答案 0 :(得分:5)

jQuery parseJSON工作正常,但是在使用jQuery AJAX并将dataType设置为JSON时它是不必要的(它在接收到数据后已经被jQuery解析)。

但是,我猜你的实际问题是如何使用例如profileid查找记录。 1016.由于所有项都在一个数组中,找到它的唯一方法是循环数组并检查为当前项设置的profileId。例如:

for(var i in items){
    if(items[i].profileid == 1016){
       //execute whatever you want to do.
    }
}

答案 1 :(得分:1)

使用:jQuery.parseJSON( json ) - 获取格式正确的JSON字符串并返回生成的JavaScript对象。 示例

var obj = jQuery.parseJSON('{"name":"John"}');
 alert( obj.name === "John" );