【问题标题】:Jquery array iteration jsonjquery数组迭代json
【发布时间】:2014-05-04 08:34:24
【问题描述】:

如何遍历Json对象?

var obj = { "field": {"row1" : {"col1":10,"col2":20,"col3":30},"row2" : {"col1":20,"col2":30,"col3":40}}}

$(obj).each(function(i,val) {
    child_obj =val
    while(children = child_obj.children() ) {
        child_obj = children .children()
    }
});

当我在 JSON 对象上调用子函数时,它没有得到子函数。

子函数是否仅适用于 DOM 元素而不适用于 JSON?

如何遍历 JSON 对象并获取列值?

【问题讨论】:

  • 那么,这里的实际问题是什么?
  • 如何遍历json对象并获取col值
  • children() 仅适用于 DOM。你能更具体的说你的目标是什么吗?您已经使用each 在第一级完成了循环,您也可以在另一个级别上执行此操作。
  • 如何递归迭代 JSON 对象?

标签: jquery iteration


【解决方案1】:

遍历 JSON 对象

Demo

var root = {
    leftChild: {
        leftChild: {
            leftChild: null,
            rightChild: null,
            data: 42
        },
        rightChild: {
            leftChild: null,
            rightChild: null,
            data: 5
        }
    },
    rightChild: {
        leftChild: {
            leftChild: null,
            rightChild: null,
            data: 6
        },
        rightChild: {
            leftChild: null,
            rightChild: null,
            data: 7
        }
    }
};
function getLeaf(node) {
    while(node instanceof Object) {
    if (node.leftChild) {
        node = getLeaf(node.leftChild);
    } else if (node.rightChild) {
        node = getLeaf(node.rightChild);
    } else { // node must be a leaf node
        return node;
    }
        console.log(node);
   }
}

alert(getLeaf(root).data);

【讨论】:

    【解决方案2】:

    这是您需要的吗?请检查

    var obj = { "field": {"row1" : {"col1":10,"col2":20,"col3":30},"row2" : {"col1":20,"col2":30,"col3":40}}}
    $.each(eval(obj.field), function(i, val){
        console.log(val.col1+','+val.col2+','+val.col3);
    });
    

    【讨论】:

      【解决方案3】:
      var obj = { "field": {"row1" : {"col1":10,"col2":20,"col3":30},"row2" : {"col1":20,"col2":30,"col3":40}}}
      $.each(obj.field,function(i,val){
          console.log(val);
          $.each(val, function(col, colVal){
              console.log(col);
              console.log(colVal);
          });
      })
      

      看看这个迭代。 jsfiddle

      【讨论】:

      • 它正在处理我在此处粘贴的示例数据。但不适用于我的系统。当我执行 foreach 时,它会返回带有键的整个对象。 JSON数据对象{“字段”:对象{row1:{“col1”:10,“col2”:20,“col3”:30}}}
      猜你喜欢
      • 2011-09-12
      • 2016-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 2014-08-28
      • 2020-12-04
      相关资源
      最近更新 更多