[英]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.