簡體   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