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

Posted 安果移不动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
    


以上是关于MMKV 和Gson 实现对象数据的存取的主要内容,如果未能解决你的问题,请参考以下文章

Android MVVM框架搭建MMKV + Room + RxJava2

Android MVVM框架搭建MMKV + Room + RxJava2

SPutils,存取简单的字串,int,boolean及javabean对象

Android源码面试宝典MMKV从使用到原理分析

Java Gson 实现 Json 数据的生成与解析

Android 数据存储-SharedPreferences or MMKV