如何使用jQuery循环遍历JSON文件

时间:2013-11-15 12:29:46

标签: javascript jquery json d3.js

我正在尝试循环遍历以下JSON文件:

 {
     "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检索一些特定数据。提前谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

您的代码返回第一个项目的原因是您使用data.statments[0]选择它,然后循环遍历该项目。

使用jQuery,你可以像这样使用grep-method:

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

您可以阅读有关grep-method here

的更多信息

使用D3js我不确定,我猜你必须用if语句循环它。

答案 1 :(得分: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.