MMKV 和Gson 实现对象数据的存取

package co.haive.lib.common.util

import com.google.gson.Gson
import com.google.gson.JsonParser
import com.tencent.mmkv.MMKV


object MMKVUtils {
    /**
     * mmkv 存储对象
     */
    fun put(key: String, obj: Any) {
        MMKV.defaultMMKV().encode(key, Gson().toJson(obj))
    }

    /**
     * mmkv 取出对象
     */
    inline fun <reified T> get(key: String): T? {
        val json = MMKV.defaultMMKV().decodeString(key)
        return Gson().fromJson(json, T::class.java)
    }

    /**
     * mmkv 取出List对象
     */
    inline fun <reified T> getList(key: String): List<T> {
        val json = MMKV.defaultMMKV().decodeString(key)
        return getObjectList(json, T::class.java)
    }


    fun <T> getObjectList(jsonString: String?, cls: Class<T>?): List<T> {
        val list: MutableList<T> = ArrayList()
        try {
            val gson = Gson()
            val arry = JsonParser.parseString(jsonString).asJsonArray
            for (jsonElement in arry) {
                list.add(gson.fromJson(jsonElement, cls))
            }
        } catch (e: Exception) {
            e.printStackTrace()
        }
        return list
    }


}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安果移不动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值