我得到了这个小json文件:

    {
    "description": {
        "is_a": "AnnotationProperty",
        "labelEN": "description",
        "labelPT": "descrição"
    },
    "relevance": {
        "is_a": "AnnotationProperty",
        "domain": "Indicator",
        "labelEN": "relevance",
        "labelPT": "relevância"
    },
    "title": {
        "is_a": "AnnotationProperty",
        "labelPT": "título",
        "labelEN": "title",
        "range": "Literal"
    }
}


我需要构建一棵树,以查找“ is_a”字段和该字段之前的名称。一旦获得了这两个字段,就可以在正确的位置在树上插入一个孩子。

因此,使用javascript,如何获取每个名称和字段“ is_a”?

我希望有一个循环语句为我提供所有名称和“ is_a”字段,例如,第一次它给我“ description”和“ AnnotationProperty”,第二次迭代给我“ relevance”和“ AnnotationProperty”,等等

谢谢。

最佳答案

您可以像这样列出名称及其is_a属性值:

Object.keys(data).forEach(function (name) {
   if (data[name].is_a) console.log(name + ' is a ' + data[name].is_a);
});


在摘要中:



var data = {
    "description": {
        "is_a": "AnnotationProperty",
        "labelEN": "description",
        "labelPT": "descrição"
    },
    "relevance": {
        "is_a": "AnnotationProperty",
        "domain": "Indicator",
        "labelEN": "relevance",
        "labelPT": "relevância"
    },
    "title": {
        "is_a": "AnnotationProperty",
        "labelPT": "título",
        "labelEN": "title",
        "range": "Literal"
    }
};

// collect name & is_a
result = [];
Object.keys(data).forEach(function (name) {
   if (data[name].is_a) result.push(name + ' is a ' + data[name].is_a);
});

// output in snippet
document.write(result.join('<br>'));

10-06 02:29