一、Gson字符串转Json对象
在使用Gson进行Json字符串转换时,首先需要将Json字符串转换为Json对象。下面展示一个Json字符串的例子:
{ "name":"Tom", "age":18, "hobby":["reading","music"] }
我们可以通过下面的代码将该Json字符串转换为JsonObject对象:
String jsonString = "{\"name\":\"Tom\",\"age\":18,\"hobby\":[\"reading\",\"music\"]}"; JsonObject jsonObject = new JsonParser().parse(jsonString).getAsJsonObject();
其中JsonParser是Gson提供的一个解析器,可以解析Json字符串并将其转换为JsonElement对象,最终利用getAsJsonObject()方法将其转换为JsonObject对象。在Gson中JsonElement是JsonObject、JsonArray和JsonPrimitive的超类,所以可以通过JsonElement对象获取到任何JsonObject、JsonArray和JsonPrimitive类型的值。
二、Gson Map转Json字符串
在使用Gson进行Map转换为Json字符串时,可以使用Gson的toJson()方法。下面是一个Map对象的例子:
Mapmap = new HashMap<>(); map.put("name", "Tom"); map.put("age", 18); map.put("hobby", Arrays.asList("reading","music"));
下面的代码将该Map对象转换为Json字符串:
String jsonString = new Gson().toJson(map);
其中toJson()方法将Map对象转换为Json字符串。
三、Gson字符串转JsonObject
Gson字符串还可以直接转换为JsonObject对象,使用和Json字符串类似的方式即可。下面是一个Gson字符串的例子:
String gsonString = "{'name':'Tom','age':18,'hobby':['reading','music']}"; JsonObject jsonObject = new JsonParser().parse(gsonString).getAsJsonObject();
需要注意的是,Gson字符串中属性名和属性值都需要用单引号括起来,而Json字符串中则使用双引号。
四、Gson List转Json字符串
在使用Gson进行List转换为Json字符串时,同样可以使用Gson的toJson()方法。下面是一个List对象的例子:
List
将该List对象转换为Json字符串的代码如下:
String jsonString = new Gson().toJson(list);
五、Gson字符串转Json
除了将Gson字符串转换为JsonObject对象以外,还可以直接通过fromJson()方法将Gson字符串转换为Json对象。下面是一个例子:
String gsonString = "{\"name\":\"Tom\",\"age\":18,\"hobby\":[\"reading\",\"music\"]}"; JsonElement jsonElement = new JsonParser().parse(gsonString); Json json = new GsonBuilder().create().fromJson(jsonElement, Json.class);
其中Json是一个空接口,表示任何Json对象。在这个例子中,Json对象被自动识别为JsonObject。
六、Json字符串转对象
将Json字符串转换为Java对象,可以使用fromJson()方法。下面是一个例子:
String jsonString = "{\"name\":\"Tom\",\"age\":18,\"hobby\":[\"reading\",\"music\"]}"; User user = new Gson().fromJson(jsonString, User.class);
其中User是一个Java类,包含了name、age和hobby三个属性。
七、Gson字符串转List
将Gson字符串转换为List对象时,可以使用fromJson()方法。下面是一个例子:
String gsonString = "[{\"name\":\"Tom\",\"age\":18},{\"name\":\"Jerry\",\"age\":17}]"; Type type = new TypeToken
>(){}.getType(); List list = new Gson().fromJson(gsonString, type);
其中User同样是一个Java类,type表示将Gson字符串解析为哪种类型的对象。
八、Gson解析Json字符串
在使用Gson解析Json字符串时,除了使用JsonParser和fromJson()方法以外,还可以使用Gson提供的fromJsonTree()方法。该方法接收一个JsonElement对象,将其转换为Java对象。
String jsonString = "{\"name\":\"Tom\",\"age\":18,\"hobby\":[\"reading\",\"music\"]}"; JsonElement jsonElement = new JsonParser().parse(jsonString); User user = new Gson().fromJsonTree(jsonElement, User.class);
其中User同样是一个Java类,jsonElement被转换为User对象。
九、Gson解析Json字符串为对象
在使用Gson解析Json字符串为对象时,可以使用fromJson()方法。下面是一个例子:
String jsonString = "{\"name\":\"Tom\",\"age\":18,\"hobby\":[\"reading\",\"music\"]}"; JsonElement jsonElement = new JsonParser().parse(jsonString); User user = new Gson().fromJson(jsonElement, User.class);
其中User同样是一个Java类,jsonElement被转换为User对象。