GSON的两个重要方法
在GSON的API中,提供了两个重要的方法:toJson()和fromJson()方法。其中,toJson()方法用来实现将Java对象转换为相应的JSON数据,fromJson()方法则用来实现将JSON数据转换为相应的Java对象。
1.1 toJson()方法
toJson()方法用于将Java对象转换为相应的JSON数据,主要有以下几种形式:
(1)String toJson(JsonElement jsonElement);
(2)String toJson(Object src);
(3)String toJson(Object src, Type typeOfSrc);
其中,方法(1)用于将JsonElement对象(可以是JsonObject、JsonArray等)转换成JSON数据;方法(2)用于将指定的Object对象序列化成相应的JSON数据;方法(3)用于将指定的Object对象(可以包括泛型类型)序列化成相应的JSON数据。
1.2 fromJson()方法
fromJson()方法用于将JSON数据转换为相应的Java对象,主要有以下几种形式:
(1)
(2)
(3)
(4)
(5)
(6)
(7)
以上的方法用于将不同形式的JSON数据解析成Java对象。
下实例解析下面的json数组string response={
}
class Book {
...
}
try {
JSONObject object=new JSONObject(response);
int code=object.getInt("code");
JsonParser parser=new JsonParser();
JsonObject obj=parser.parse(response).getAsJsonObject();
JsonArray array=obj.getAsJsonArray("data");
Gson gson=new Gson();
List
if (code==GlobalConsts.RESPONSE_CODE_SUCCESS) {
Type type = (Type) new TypeToken
for (int i = 0; i < array.size(); i++) {
JsonElement j=array.get(i);
Book book=gson.fromJson(j, type);
books.add(book);
}
callback.onSuccess(books);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("error", "response:"+error.getMessage());
}
});
如果要处理的JSON字符串只包含一个JSON对象,则可以直接使用fromJson获取一个User对象:
String jsonData = "{\"username\":\"arthinking\",\"userId\":001}"; Gson gson = new Gson(); User user = gson.fromJson(jsonData, User.class); System.out.println(user.getUsername()); System.out.println(user.getUserId());