2012-06-01 98 views
1

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

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

下面是我的对象的第一个记录。我将如何分析这个对象来获取1016的'profileid'记录?

{ 
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' 
        } 
       ] 
      } 
     }, 

回答

5

jQuery的parseJSON工作得很好,但是使用jQuery AJAX时并设置数据类型为JSON(它已经由jQuery的接收数据后解析)是不必要的。

但是,我想你的实际问题是如何找到与例如profileid的记录。 1016.由于所有项目都位于数组中,唯一的方法就是循环数组并检查当前项目设置了什么profileId。例如:

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

利用:jQuery.parseJSON(json) - 取得一个结构良好的JSON字符串,并返回结果的JavaScript对象。 实施例

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

通过这样做 - 'code'var OBJ = jQuery.parseJSON( 'timeline.js');'code' - 不此在存储器中存储整个JSON对象?或者每次调用obj时是否简单地解析JSON? – matthoiland