一、从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中。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/238598.html
微信扫一扫
支付宝扫一扫