如果属性每次都更改名称,则遍历一个值

时间:2011-03-18 16:31:42

标签: javascript jquery json

在JSON网站上找到这个例子, 在我的情况下,我正在使用一个API,我有一个json,其中属性名称“词汇表”,每个请求都会更改...我的意思是如果你搜索“词汇表 “第一个属性是词汇表,如果你搜索” apple “将是苹果等等......

xml更容易遍历...但我不知道如何在JSON中进行 如果词汇表更改,我不知道如何获得标题的值...

使用javascript / jquery我试过像data [0] .title ......但是没有用

{
        "glossary": {
            "title": "example glossary",
            "GlossDiv": {
                "title": "S",
                "GlossList": {
                    "GlossEntry": {
                        "ID": "SGML",
                        "SortAs": "SGML",
                        "GlossTerm": "Standard Generalized Markup Language",
                        "Acronym": "SGML",
                        "Abbrev": "ISO 8879:1986",
                        "GlossDef": {
                            "para": "A meta-markup language, used to create markup languages such as DocBook.",
                            "GlossSeeAlso": ["GML", "XML"]
                        },
                        "GlossSee": "markup"
                    }
                }
            }
        }
    }

3 个答案:

答案 0 :(得分:1)

for (property_name in some_object) {
    some_object[property_name]...
}

答案 1 :(得分:0)

尝试迭代json对象中的所有属性

var json = ...;

for (var i in json) {
    if (json.hasOwnProperty(i)) {
        var elem = json[i];
        // handle element here
    }
}

hasOwnProperty确保您不会通过更改对象原型来添加属性。

答案 2 :(得分:0)

如果你对返回对象的第一个也是唯一一个属性感兴趣,那应该可以解决这个问题:

function getChild(obj){
    var prop;
    for(prop in obj){
        if(Object.prototype.hasOwnProperty.call(obj,prop)){
            return obj[prop];
        }
    }
}

var json={glossary:{...}};

var child = getProp(json); // child should now contain the glossary object

应该注意的是,如果json对象中有多个属性,则无法保证返回哪个子节点,因为for..in遍历没有特定的顺序。