如何在解析json jquery时分离数组?

时间:2014-05-24 00:06:02

标签: javascript jquery arrays json

我正在解析json。实际上我需要从json中找到属性。在我的json中,我有两个嵌套数组(列表,数组)。我需要得到单独的值。但是我得到一个数组中的所有值我们可以在单独的数组中拆分数组“list”数组。“array”在单独的数组中。 我这样做了:

33,44,23,11 这是我的小提琴: http://jsfiddle.net/f5Awq/

var arrayLabel=new Array();
var listLabel=new Array();

function recursiveIteration(object, callback, data) {
  for (var property in object) {
    if (object.hasOwnProperty(property)) {
      if (typeof object[property] == "object"){
        recursiveIteration(object[property], callback, data);        
      }
      else {
        callback(object, property, data);
      }
    }
  }
}
function test_cb(object, property, data) { console.log(property);
  if(property == data.filter && object[property]){
    data.array.push(object[property]);
  }
}

recursiveIteration(json, test_cb, {filter: 'label', array: arrayLabel});

console.log(arrayLabel);

document.body.textContent = arrayLabel.join(', ');

我正在使用arrayLabel: 33,44,23,11

我的预期结果:

arrayLabel:33,44。    listLabel是11,23

33,44因为他们在我的json.can中的“数组”和11,23列表中我们添加了条件?

1 个答案:

答案 0 :(得分:0)

我希望你能得到这个:

var arrayLabel = {'list':[],'array':[]};
var listLabel = new Array();

function recursiveIteration(object, callback, data,parent) {
    parent=parent||'root';
    for (var property in object) {
        if (object.hasOwnProperty(property)) {
            if (typeof object[property] == "object") {
                if (['list','array'].indexOf(property)>=0) {parent=property;} //the condion you looked for
                recursiveIteration(object[property], callback, data,parent);
            } else {
                callback(object, property, data,parent);
            }
        }
    }
}

function test_cb(object, property, data,parent) {
    if (property == data.filter && object[property]) {
        data.array[parent].push(object[property]);
    }
}

所以,我记录了当前"合法"父名称并将其累积到数据中。您可以轻松选择它。

http://jsfiddle.net/oceog/f5Awq/1/