繁体   English   中英

浏览JSONObject Android

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM