概述
当在 Java 项目中使用 Gson 库处理 JSON 时,我们可以将原始 JSON 字符串转换成更容易使用的类对象或数据结构。如将 JSON 字符串转换为 **Map<String, Object>**
对象,或者其他自定义类型的对象。但有些时候将 JSON 字符串转换为通用对象会更方便使用。
本文将演示如何使用 Gson 将 JSON 字符串转为 **JsonObject**
对象。
配置Maven依赖
首先,在 pom.xml 文件中配置 gson 依赖项:
1 2 3 4 5
| <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.9.1</version> </dependency>
|
gson 版本根据实际情况进行选择,建议使用最新版本(见 Maven Central )。
本文使用的是 2.9.1 版本(当前最新版本)。
方法一:*JsonParser*
先使用 JsonParser 类的 parseString()
方法将 JSON 字符串转化 JsonElement 类型,再调用 JsonElement 类的 getAsJsonObject()
方法,即可得到 JsonObject 类对象。
示例代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| public static void main(String[] args) { String strJson = "{\"id\":20990981,\"name\":\"Johnson\",\"tag\":\"Javaer,Student\",\"platform\":\"AL\"}"; JsonElement jsonElement = JsonParser.parseString(strJson); JsonObject jsonObject = jsonElement.getAsJsonObject();
System.out.println(jsonObject.get("id").getAsInt()); System.out.println(jsonObject.get("name").getAsString()); System.out.println(jsonObject.get("tag").getAsString()); System.out.println(jsonObject.get("platform").getAsString()); System.out.println(); }
|
方法二:*fromJson*
使用 Gson 对象的 fromJson()
方法,该方法将指定的 JSON 字符串反序列化为指定类的对象。
如以下示例代码展示了如何将 JSON 字符串反序列化为 JsonObject 类对象:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| public static void main(String[] args) { String strJson = "{\"id\":20990981,\"name\":\"Johnson\",\"tag\":\"Javaer,Student\",\"platform\":\"AL\"}"; JsonElement jsonElement = JsonParser.parseString(strJson); JsonObject jsonObject = new Gson().fromJson(strJson, JsonObject.class);
System.out.println(jsonObject.get("id").getAsInt()); System.out.println(jsonObject.get("name").getAsString()); System.out.println(jsonObject.get("tag").getAsString()); System.out.println(jsonObject.get("platform").getAsString()); System.out.println(); }
|
小结
本文讲述了在 Java 项目中使用 Gson 库将 JSON 格式的字符串转为 JsonObject 对象的两种不同的方法。我们可以根据实际需要选择最合适的方法。
P.S. 本文示例代码托管在 GitHub 上。
(END)