Gson框架的使用(单例模式,节约性能)

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Gson是一个用于Java和Android的开源JSON库,可以将Java对象转换为JSON字符串,也可以将JSON字符串转换为Java对象。下面是Gson的详细使用方法: 1.导入Gson库 在项目的build.gradle文件中添加以下依赖: ``` implementation 'com.google.code.gson:gson:2.8.6' ``` 2.将Java对象转换为JSON字符串 ``` //创建一个Java对象 Person person = new Person("Tom", 18); //创建Gson对象 Gson gson = new Gson(); //将Java对象转换为JSON字符串 String json = gson.toJson(person); ``` 3.将JSON字符串转换为Java对象 ``` //创建一个JSON字符串 String json = "{\"name\":\"Tom\",\"age\":18}"; //创建Gson对象 Gson gson = new Gson(); //将JSON字符串转换为Java对象 Person person = gson.fromJson(json, Person.class); ``` 4.处理复杂JSON数据 如果JSON数据比较复杂,例如包含嵌套的JSON对象或JSON数组,可以使用Gson的TypeToken类来处理。 ``` //创建一个JSON字符串 String json = "{\"name\":\"Tom\",\"age\":18,\"address\":{\"city\":\"Beijing\",\"street\":\"Haidian\"},\"hobbies\":[\"reading\",\"swimming\"]}"; //创建Gson对象 Gson gson = new Gson(); //将JSON字符串转换为Java对象 Type type = new TypeToken<Person>(){}.getType(); Person person = gson.fromJson(json, type); ``` 5.配置Gson Gson还提供了一些配置选项,例如设置日期格式、排除特定字段等。 ``` //创建Gson对象 Gson gson = new GsonBuilder() .setDateFormat("yyyy-MM-dd") .excludeFieldsWithoutExposeAnnotation() .create(); //使用Gson对象进行序列化和反序列化 ``` 以上就是Gson的详细使用方法,希望能帮助到你。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值