首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 解析複雜 JSON 響應:JSONObject.keys() 遍歷動態 Key 名稱

     編輯:程式設計綜合問答

JSON 中 playlists 字段的 Key 為動態 ID(\"10063\", \"10157\"),無法直接用固定 Key 獲取。需用 JSONObject.keys() 獲取迭代器遍歷所有 Key。

解析代碼

JSONObject playlists = json.getJSONObject("playlists");
Iterator keys = playlists.keys();
while (keys.hasNext()) {
    String playlistId = keys.next();
    JSONObject playlist = playlists.getJSONObject(playlistId);
    String id = playlist.getString("id");
    String name = playlist.getString("name");
    JSONArray songs = playlist.getJSONArray("songs");
    // 處理 id, name, songs
    Log.d("Playlist", "ID: " + id + ", Name: " + name + ", Songs: " + songs.length());
}

建議:服務端優化結構

動態 Key 作為對象屬性名不利於解析,建議服務端返回數組格式:

"playlists": [
    {"id": "10063", "name": "Favorites", "songs": [...]},
    {"id": "10157", "name": "80s", "songs": [...]}
]

客戶端即可直接 getJSONArray(\"playlists\") 遍歷,無需反射式 Key 迭代。

客戶端兼容處理

  • 若無法改服務端,keys() 迭代是唯一方式。
  • 注意 keys() 返回順序不固定,業務邏輯不應依賴順序。

動態 Key 用 keys() 迭代,推薦服務端改數組結構簡化客戶端。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved