Gson是一個Google開發的Java庫,可以將Java對象和JSON相互轉換。其中,將Map轉成JSON是常見的一個需求。
//創建Map Mapmap = new HashMap<>(); map.put("name", "張三"); map.put("age", 18); map.put("gender", "male"); //創建Gson對象 Gson gson = new Gson(); //將Map轉換成JSON字符串 String json = gson.toJson(map);
上述代碼,首先是創建了一個Map對象,包含了三個鍵值對。接著創建了一個Gson對象,使用它的toJson方法將Map對象轉成JSON字符串。
轉換后的JSON字符串如下:
{ "name": "張三", "age": 18, "gender": "male" }
其中,每個鍵值對的鍵是字符串類型,值可以是任意類型,包括基本類型和自定義類型。
除了將Map轉成JSON,Gson還支持將JSON轉成Map。具體方法如下:
//JSON字符串 String json = "{\"name\":\"張三\",\"age\":18,\"gender\":\"male\"}"; //創建Gson對象 Gson gson = new Gson(); //將JSON字符串轉換成Map對象 Mapmap = gson.fromJson(json, new TypeToken<Map<String, Object>>(){}.getType());
上述代碼中,首先是一個JSON字符串,接著創建了一個Gson對象。最后使用gson.fromJson方法,將JSON字符串轉成Map對象。
需要注意的是,gson.fromJson方法需要傳入第二個參數TypeToken類型,即TypeToken<Map<String, Object>>(){}.getType(),這是因為Gson在運行時需要知道轉換的類型。
綜上所述,Gson是一個很方便的Java庫,可以輕松地將Java對象轉成JSON字符串,也可以將JSON字符串轉成Java對象。特別是對于Map類型的轉換,Gson提供了很好的支持。