Java中,我們經常需要將JSON字符串轉換為Map對象。這在處理HTTP請求和響應時很常見。一種可行的方法是使用Java自帶的Json庫 - org.json。下面我們將演示如何將JSON字符串轉換為Map對象。
import org.json.JSONObject; import java.util.HashMap; import java.util.Map; public class JsonToMap { public static void main(String[] args) { String jsonStr = "{\"name\":\"張三\",\"age\":20,\"score\":{\"語文\":88,\"數學\":90}}"; JSONObject jsonObj = new JSONObject(jsonStr); Mapmap = new HashMap<>(); for(String key : jsonObj.keySet()){ Object val = jsonObj.get(key); if(val instanceof JSONObject){ val = toMap((JSONObject)val); } map.put(key,val); } System.out.println(map); } private static Map toMap(JSONObject jsonObj){ Map map = new HashMap<>(); for(String key : jsonObj.keySet()){ Object val = jsonObj.get(key); if(val instanceof JSONObject){ val = toMap((JSONObject)val); } map.put(key,val); } return map; } }
代碼解釋:
- 首先,我們需要一個JSON字符串來進行轉換。在上方的代碼中,一個簡單的JSON對象被創建。
- 使用JSONObject將字符串解析為JSON對象。
- 定義一個空的HashMap用于保存所有鍵值對。
- 使用循環遍歷JSON對象中的所有鍵,并將相應的值保存在HashMap中。
- 如果值是另一個JSON對象,則遞歸地調用toMap方法,將其轉換為Map對象并將其添加到父Map對象中。
- 最后,輸出Map對象。
現在你已經成功地將JSON字符串轉換為Map對象!