一、从JSON转List
Gson是Google推出的一个用于将Java对象转换为JSON格式,或将JSON字符串转换为Java对象的Java libarary。在处理JSON字符串中的List时,我们可以利用Gson将其转换为List对象进行方便的操作。
下面是一个JSON字符串:
{ "users": [ {"name": "John", "age": "30", "gender": "male"}, {"name": "Mary", "age": "25", "gender": "female"}, {"name": "Tom", "age": "40", "gender": "male"} ] }
我们可以用Gson将此JSON字符串转换为List对象:
Gson gson = new Gson(); Type listType = new TypeToken<List<User>>(){}.getType(); List<User> userList = gson.fromJson(jsonString, listType);
上述代码的含义是:先定义一个Gson对象,然后通过TypeToken获取List<User>类型,接着用Gson将JSON字符串转换为List<User>对象。
二、Gson转List实体类
假设我们有一个实体类User:
public class User { private String name; private int age; private String gender; // getter和setter方法 }
我们可以用Gson将JSON字符串转换为List<User>对象:
Gson gson = new Gson(); Type listType = new TypeToken<List<User>>(){}.getType(); List<User> userList = gson.fromJson(jsonString, listType);
上述代码与前面的示例代码类似,只不过TypeToken中的类型改为了List<User>。
三、Gson转List对象
在某些情况下,我们需要将一个对象转换为List对象。假设我们有一个User对象,我们可以通过以下方式将其转换为List<User>对象:
User user = new User("Tom", 30, "male"); List<User> userList = new ArrayList<User>(); userList.add(user); Gson gson = new Gson(); Type listType = new TypeToken<List<User>>(){}.getType(); String jsonString = gson.toJson(userList, listType);
上述代码的含义是:首先创建一个User对象,并将其添加到List<User> userList中,接着创建一个Gson对象,通过TypeToken获取List<User>类型,最后用Gson将List<User>对象转换为JSON字符串。
四、Gson转List<String>
有时我们需要将一组字符串转换为List<String>对象。下面是一个示例代码:
String jsonString = "[\"apple\", \"banana\", \"orange\"]"; Gson gson = new Gson(); Type listType = new TypeToken<List<String>>(){}.getType(); List<String> fruitList = gson.fromJson(jsonString, listType);
上述代码的含义是:先定义一个含有果实名称的JSON字符串,接着创建Gson对象,通过TypeToken获取List<String>类型,最后通过Gson将JSON字符串转换为List<String>对象。
五、Gson转对象
我们也可以用Gson将JSON字符串转换为对象。假设我们有以下JSON字符串:
{"name": "Tom", "age": "30", "gender": "male"}
我们可以用以下代码将其转换为Java对象:
Gson gson = new Gson(); User user = gson.fromJson(jsonString, User.class);
上述代码的含义是:首先创建一个Gson对象,接着用Gson将JSON字符串转换为User对象。
六、Gson转字符串
我们也可以用Gson将Java对象转换为JSON字符串。下面是一个示例代码:
User user = new User("Tom", 30, "male"); Gson gson = new Gson(); String jsonString = gson.toJson(user);
上述代码的含义是:首先创建一个User对象,接着创建一个Gson对象,最后用Gson将User对象转换为JSON字符串。
七、Gson转Map
有时我们需要将JSON字符串转换为Map对象。假设我们有以下JSON字符串:
{ "name": "Tom", "age": 30, "gender": "male" }
我们可以用以下代码将其转换为Map对象:
Gson gson = new Gson(); Type mapType = new TypeToken<Map<String,Object>>(){}.getType(); Map<String,Object> map = gson.fromJson(jsonString, mapType);
上述代码的含义是:首先创建一个Gson对象,接着通过TypeToken获取Map<String,Object>类型,最后用Gson将JSON字符串转换为Map<String,Object>对象。
八、String转Gson
我们还可以把一个字符串转换为Gson对象。下面是一个示例代码:
private static final String TAG = "MyActivity"; Gson gson = new Gson(); String jsonString = "{\"name\": \"Tom\", \"age\": 30, \"gender\": \"male\"}"; JsonElement jsonElement = gson.fromJson(jsonString, JsonElement.class); Log.i(TAG, "jsonElement:" + jsonElement);
上述代码的含义是:首先创建一个Gson对象,接着创建一个JSON字符串,最后用Gson将JSON字符串转换为JsonElement对象,并输出到Log中。