2013-11-15 45 views
3

我通過下面的下面的JSON文件試圖循環JSON文件循環:如何通過使用jQuery

{ 
    "statements": [{ 
     "subject": "A" 
    }, { 
     "predicate": "B" 
    }, { 
     "object": "C" 
    }, { 
     "subject": "D" 
    }, { 
     "predicate": "E" 
    }, { 
     "object": "F" 
    }] 
} 

正如你可以看到,有兩個主體,兩個謂詞和兩個對象。例如,我想獲得值"predicate":"E"。我如何使用jQuery或D3 Javascript庫來做到這一點。我在下面的代碼檢索第一個主題"subject":"A"

$.each(data.statements[0], function(i, v){ 
console.log(v.uriString); 
}); 

或D3(我不知道如何做到這一點在D3):

d3.json("folder/sample.json", function(error, graph) 
{ // Code is here for getting data from JSON file } 

誰能幫我環路通過上面的JSON文件和檢索或者用jQuery或某些特定數據D3 Javascript。提前謝謝你的幫助。

+0

'語句[1] .predicate' – adeneo

+0

我想這一個,但我沒有看到任何輸出。有什麼想法嗎? – user2864315

+0

'語句[1] .predicate'只有在他已經知道他需要的物品的索引時纔會起作用。這將返回語句數組中第二個對象的謂詞值。他還要求帶謂詞「E」的那個,所以這意味着他必須使用:'statement [4] .predicate'。 –

回答

1

試試這個:

$(data.statements).each(function (i) { 
    var d = data.statements[i]; 
    $.each(d, function (k, v) { //get key and value of object 
     $("body").append("<p>"+k + ":" + v+"</p>"); 
    }); 
}) 

Fiddle here.

1

您的代碼返回第一個項目的原因是因爲您選擇了data.statments[0],然後循環播放該項目。

使用jQuery,您可以使用grep,方法是這樣的:

var arrayWithItem = jQuery.grep(data.statements, function(obj) { 
    return obj.predicate == "E"; 
}); 

你可以閱讀更多關於grep的法here

隨着D3js我不知道,我想你必須用if語句循環它。