簡體   English   中英

如果屬性每次都更改名稱,則遍歷一個值

[英]Traverse a value if the property changes name every time

給定這個在JSON網站上找到的示例,就我而言,我使用的是API,其中我有一個json,其中的屬性名稱為“ 詞匯表 ”,每個請求都會更改...我的意思是,如果您搜索“ 詞匯表 ”,則第一個屬性是詞匯表 ,如果您搜索“ 蘋果 ”將是蘋果 ,依此類推...

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"
                    }
                }
            }
        }
    }
for (property_name in some_object) {
    some_object[property_name]...
}

嘗試遍歷json對象內的所有屬性

var json = ...;

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

hasOwnProperty確保您不會通過更改對象原型來獲得添加的屬性。

如果您有興趣返回該對象的第一個也是唯一的屬性,則應該這樣做:

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遍歷沒有特定的順序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM