Gson的使用:传统的Gson的使用,每解析一次json字符串或生成一次json字符串,都会创建一个Gson对象,这样太消耗手机的内存和性能了,今天做了一个Gson管理类,使用单例模式书写,整个应用中只存在一个Gson对象,避免了Gson多次重复创建、消耗手机内存和性能问题。
1.Gson管理类GsonManager,代码如下。
package com.mobile.common_library.manager;
import com.google.gson.Gson;
import java.lang.reflect.Type;
public class GsonManager {
public static final String TAG = "GsonManager";
private static Gson gson;
private static GsonManager gsonManager;
private GsonManager() {
gson = new Gson();
}
public static GsonManager getInstance() {
if (gsonManager == null) {
synchronized (GsonManager.class) {
if (gsonManager == null) {
gsonManager = new GsonManager();
}
}
}
return gsonManager;
}
/**
* 将json转化为对应的实体对象
* new TypeToken<HashMap<String, Object>>(){}.getType()
*/
private <T> T fromJson(String json, Type type) {
return gson.fromJson(json, type);
}
/**
* 将json字符串转化成实体对象
*
* @param json json字符串
* @param <T> 目标对象类型
* @return 目标对象实例
*/
public <T> T convert(String json, Class<T> clz) {
return fromJson(json, clz);
}
/**
* toJson
*
* @param src 对象
* @return String
*/
public String toJson(Object src) {
return gson.toJson(src);
}
}
2.使用(如何解析)。
FirstPageResponse response = GsonManager.getInstance().convert(success, FirstPageResponse.class);
3.使用(如何把对象变成json字符串)。
String jsonStr = GsonManager.getInstance().toJson(response);
如对此有疑问,请联系qq1164688204。
推荐Android开源项目
项目功能介绍:RxJava2和Retrofit2项目,添加自动管理token功能,添加RxJava2生命周期管理,使用App架构设计是MVP模式和MVVM模式,同时使用组件化,部分代码使用Kotlin,此项目持续维护中。
项目地址:https://gitee.com/urasaki/RxJava2AndRetrofit2