![](/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.