我正在解析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列表中我们添加了条件?
答案 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]);
}
}
所以,我记录了当前"合法"父名称并将其累积到数据中。您可以轻松选择它。