gson是一種用于將Java對象序列化為JSON格式字符串的Java庫。它支持任何Java對象,包括嵌套對象和集合,并且可以將JSON字符串反序列化為Java對象。gson的核心API包括JsonParser和JsonSerializer。
JsonParser parser = new JsonParser(); JsonObject object = parser.parse(json).getAsJsonObject();
JsonParser是gson庫中的主要類之一,它提供了一種將JSON字符串解析為JsonElement的簡單方法。JsonElement是gson庫中的根元素,可以是一個JsonArray、JsonObject、JsonNull或JsonPrimitive。通過JsonParser.parse()方法,我們可以將JSON字符串解析為JsonElement。例如:
JsonPrimitive primitive = new JsonPrimitive(10); String str = primitive.toString(); // 10
JsonSerializer是gson庫中的另一個關鍵類,它被用于將Java對象序列化為JSON格式。在序列化過程中,gson將Java對象轉換為JsonElement,并使用JsonElement的toString()方法將其轉換為JSON格式字符串。
JsonSerializer<Date> serializer = new JsonSerializer<Date>() { public JsonElement serialize(Date src, Type typeOfSrc, JsonSerializationContext context) { return new JsonPrimitive(src.getTime()); } }; Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, serializer).create(); String json = gson.toJson(new Date()); // 1607014283000
在這個例子中,我們創建了一個JsonSerializer來序列化Date對象。我們將Date對象轉換為其對應的毫秒數,并將其封裝在一個JsonPrimitive中。我們然后使用GsonBuilder注冊這個JsonSerializer,并創建一個Gson對象。最后,我們使用Gson.toJson()方法將Date對象轉換為JSON格式字符串。