![](/img/trans.png)
[英]Navigating through Fragments in android without adding it into backstack
[英]Navigating through JSONObject Android
我正在嘗試實現一種方法,該方法能夠瀏覽JSONObject直到找到給定參數。 我的JSON的結構類似於文件夾系統。 有文件夾,每個文件夾可以有文件,一個文件夾可以有另一個文件夾,依此類推.JSON如下所示:
{
"Elements": [
{
"file": {
"files": [
{
"id": "562dd7a2-9268-46b2-8963-b7a3b43e906e",
"modified": 1457608018166,
"name": "Bild1"
},
{
"id": "0efd76e7-730e-428a-96a4-95e04844070a",
"modified": 1457608018166,
"name": "Audio"
},
{
"files": [
{
"id": "562dd7a2-9268-46b2-8963-b7a3b43e906e",
"modified": 1457608018166,
"name": "Bild2"
},
{
"id": "562dd7a2-9268-46b2-8963-b7a3b43e906e",
"modified": 1457608018166,
"name": "Bild3"
},
{
"id": "562dd7a2-9268-46b2-8963-b7a3b43e906e",
"modified": 1457608018166,
"name": "Bild4"
}
],
"id": "562dd7a2-9268-46b2-8963-b7a3b43e906e",
"name": "FolderInRoot"
}
],
"id": "562dd7a2-9268-46b2-8963-b7a3b43e906e",
"name": "RootFolder"
}
},
{
"file": {
"files": [],
"id": "562dd7a2-9268-46b2-8963-b7a3b43e906e",
"name": "AnotherRootFolder"
}
}
]
}
因此,例如,我想編輯路徑為“ / RootFolder / FolderInRoot / Bild2”的“ Bild2”。 有人可以導航到該給定位置的方法。 路徑應該是參數。
您需要遍歷JSON響應,直到達到正確的深度為止,然后可以使用getString(“ name”)來獲取該鍵(即Bild2)上的內容。 從對象/鍵中獲取內容后,可以將其添加到“列表”或“映射”中以遍歷數據或對數據進行其他操作。 有關更多信息,請參見此StackOverflow問題: Json數組上的Java循環?
您可能還需要考慮使用Gson庫來簡化解析。 如果您能夠將Gson添加到項目中(我建議您這樣做),那么會有大量很棒的教程來解析數據並將JSON反序列化為純Java對象(這將避免嵌套循環的麻煩)。 首先,您可以使用Android中的GSON解析復雜的JSON對象和http://blog.nkdroidsolutions.com/how-to-parsing-json-array-using-gson-in-android-tutorial/ 。
(PS,如果可能的話,您可能要考慮簡化JSON結構,因為使用起來會容易得多)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.