2012-06-01 65 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