【问题标题】:How to loop through JSON file using jQuery如何使用 jQuery 遍历 JSON 文件
【发布时间】:2013-11-15 12:29:45
【问题描述】:

我正在尝试遍历下面的 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 检索一些特定数据。提前谢谢你的帮助。

【问题讨论】:

  • statements[1].predicate
  • 我试过这个,但我没有看到任何输出。有什么想法吗?
  • statements[1].predicate 只有在他已经知道他需要的项目的索引时才会起作用。这将返回 statements 数组中第二个对象的谓词值。他还要求使用谓词“E”,这意味着他必须使用:statements[4].predicate

标签: javascript jquery json d3.js


【解决方案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.

【讨论】:

    【解决方案2】:

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

    使用 jQuery,您可以像这样使用 grep 方法:

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

    您可以阅读更多关于 grep 方法 here

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-29
      • 2021-11-19
      • 1970-01-01
      • 2015-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多