您的位置:

Gson转List详解

一、从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中。