Android使用Gson和SharedPreferences存储对象

Android 保存List数据(SharedPreferences 博客已转移 一、简介 存储List数据到本地的方式有很多种,对于不想用sqlite或者其他方式,又或是数据量很少的话,不妨可以试下用 SharedPreferences保存。由于SharedPreferences只能保存Map型的数据,必须要做其他转换才行。 二、应用场景 用于保存各种List数据,最常见的莫过于,ListView、Gr... 阅读详情

Android存储文件通常可以用SharedPreferences、SQLite、Content Provider和File,但是SharedPreferences只支持简单的key-value,

通常,如果要存储一个对象,可以先把它序列化,然后用输入输出流存进file文件


另一个我比较喜欢的方式是:

写:先把一个对象用gson解析成json字符串(使用gson的toJson函数),然后当成一个value写进SharedPreferences里面

读:读取出来的时候就再次用gson把json解析成对象(使用gson的fromJson函数)

参考:

Android中的JSON详细总结

怎样使用Gson 解析 (deserialize) json字符串

Gson简要使用笔记



代码实现:





参考:

Json转换利器Gson之实例一-简单对象转化和带泛型的List转化 ( http://blog.csdn.net/lk_blog/article/details/7685169 )
Json转换利器Gson之实例二-Gson注解和GsonBuilder ( http://blog.csdn.net/lk_blog/article/details/7685190 )
Json转换利器Gson之实例三-Map处理(上) ( http://blog.csdn.net/lk_blog/article/details/7685210 )
Json转换利器Gson之实例四-Map处理(下) ( http://blog.csdn.net/lk_blog/article/details/7685224 )
Json转换利器Gson之实例五-实际开发中的特殊需求处理 ( http://blog.csdn.net/lk_blog/article/details/7685237 )
Json转换利器Gson之实例六-注册TypeAdapter及处理Enum类型 ( http://blog.csdn.net/lk_blog/article/details/7685347 )




新的SharedPreference 操作类, 简化了使用的参数   http://my.oschina.net/sfshine/blog/219384





AI编程助手Cursor如何革新经济学研究:从计量模型到可视化全流程实战 在数据科学人工智能技术蓬勃发展的今天,如何高效地将前沿AI工具融入专业领域的研究工作流,成为提升科研效率的关键。其核心原理在于通过自然语言交互,将研究者的专业问题转化为机器可执行的指令,从而实现人机协作的范式转移。这一技术的核心价值在于大幅降低非计算机背景研究者的编程门槛,将精力从繁琐的代码实现中解放出来,更聚焦于学科本身的思想与逻辑。尤其在经济学、金融学等高度依赖数据分析计量建模的领域,AI编程助手能够快速处理数据清洗、模型估计、可视化及结果解释等任务。具体到应用场景,研究者可以利用结构化提示词工程, 阅读详情

相关推荐

STM407ZET6+OV5640调试心得

最近一个项目用了STMF407ZET6 +OV5640,调试了好几天做些总结; STMF407ZET6 开发板用的是正点原子的开发板,OV5640摄像头用的是秉火摄像头; 这其中有一个大坑,开发板的DCMI接口跟摄像头的接口不一样,要重新用杜邦线进行连接; 本人是在正点原子的“”15,ATK-OV5640摄像头模块“”源码上进行修改的。

kingseacjh的专栏 8287

SharedPreferences通过Gson 存储 集合 List

加入Gson依赖:implementation 'com.squareup.retrofit2:converter-gson:2.4.0' 存储时: private List<JsonCityIdBean> listTransferCity = new ArrayList<>(); //全局list("<>"中是泛型实体类) SharedPreferenc...

qq_38287890的博客 728

SpyGlass Lint脚本实战:如何用TCL自动化RTL代码检查(附完整配置模板)

本文详细介绍了如何利用TCL脚本实现SpyGlass Lint工具的自动化RTL代码检查。通过构建模块化、工程化的脚本框架,文章提供了从环境搭建、核心配置、规则定制到豁免管理的完整实战指南,并附有可复用的配置模板,旨在帮助IC设计工程师构建高效、一致的代码质量检查流水线。

weixin_29204205的博客 108

GSON互转List对象与String,并使用SharedPreferences存储

Bmob采用异步加载保护数据的安全,但是在实现一些需要本地操作数据库内容时,就变得很麻烦,幸好有SharedPreferences本地存储可以解决这一问题,但是SharedPreferences一般只能存储布尔、字符串、数值型,并不能存储对象,Json可以解决这一问题但Json太麻烦,封装Json的Gson就很简单。 List<对象>转字符串 public static void setSaveAccount(List<Topic> result) { Gson gs

weixin_44575660的博客 503

使用SharedPreferences保存对象

使用SharedPreferences保存对象

leveretz的博客 403

GsonSharedPreferences轻松构建android本地数据缓存

刚刚看了一篇IBM的博客,讲的是Android本地数据存储API,感觉实在是太复杂了,对于大部分个人开发者而言,按照这种方式来做自己的项目,实在是一件极其痛苦的事情,作为一名敏捷开发的信徒,实在难以忍受按照IBM那套来做事情,下面给大家介绍一下个人在实践中总结出来的一套数据存储的方法。

GonJay's blog 6537

SharePreference技巧之保存一个对象

Android中我们经常需要持久化保存数据,这时可以使用文件,SharePreference,以及SQLite等。如果我想保存一个对象呢?有些人会立马想到用orm框架,但是我可能不想依赖这个框架。实际上如果数据量不大,用SharePreference可能会更适合。我们完全可以自己实现一个SharePreference版的持久化保存对象的工具类。直接看代码public class SpUtils {

leandom的专栏 3673

android 使用SharedPreferences保存对象

今天,简单讲讲Android如何使用SharedPreferences保存对象。 记得之前写过一遍博客关于android如何使用SharedPreferences保存List类型的链表,但是最近需要做一个需求,保存一个对象或者是List,那么应该怎么办呢?在网上查找了资料,最终是解决了问题。这里记录一下。 一.使用Gosn将对象转成String后存入SharedPreferen

谢岩的博客 1万+

android对象存储,android - 以共享首选项存储检索类对象

android - 以共享首选项存储检索类对象Android中,我们可以在共享首选项中存储类的对象,并在以后检索该对象吗?如果有可能怎么办? 如果不可能做到这一点的其他可能性是什么?我知道序列化是一种选择,但我正在寻找使用共享偏好的可能性。12个解决方案310 votes是的,我们可以使用Gson做到这一点从GitHub下载工作代码SharedPreferences mPrefs = get...

weixin_42575505的博客 260

Android对象存储SharedPreferences

如果需要将一个对象存储Android SharedPreferences中,可以用到下面的办法: 以我的例子来说,我需要将一个标记账本的对象,其中元素为封面背景id(int)账本名称(String)的对象存储SharedPreferences。 下面是我封装改账本(Book)的Bean: package beans; /** * Created by Chase o

君无意的博客 1000

android 对象存储_在Android存储对象

android 对象存储Android使用SQLite的一种替代方法是将Java对象存储SharedPreferences中。 在这里,我们将研究两种不同的方法。 为什么不为所有存储需求选择SQLite? 原因可能多种多样:除了对象定向数据库关系数据库之间的阻抗不匹配外,对于某些简单的用例,SQLite可能会过大(带来更多开销),或者可能完全不喜欢SQLite的使用语法。 例如,...

cunfen0516的博客 768

GsonSharedPreferences轻松构建android本地数据缓存

转自:http://blog.csdn.net/gonjay/article/details/13509321 刚刚看了一篇IBM的博客,讲的是Android本地数据存储API,感觉实在是太复杂了,对于大部分个人开发者而言,按照这种方式来做自己的项目,实在是一件极其痛苦的事情,作为一名敏捷开发的信徒,实在难以忍受按照IBM那套来做事情,下面给大家介绍一下个人在实践中总结出来的一套

wangjia55的专栏 4496

android 保存对象,Android SharedPreferences如何保存/存储对象

白衣非少年要添加到@MuhammadAamirALi的答案,可以使用gson保存检索对象列表将用户定义对象的列表保存到SharedPreferencespublicstaticfinalStringKEY_CONNECTIONS="KEY_CONNECTIONS";SharedPreferences.Editoreditor=getPreferences(MODE_PRIVAT...

weixin_35208812的博客 298

Android存储对象

Android使用SQLite的一种替代方法是将Java对象存储SharedPreferences中 。 在这里,我们将研究两种不同的方法。 为什么不为所有存储需求选择SQLite? 原因可能多种多样:除了对象定向关系数据库之间的阻抗不匹配之外,对于某些简单的用例,SQLite可能会过大(带来更多开销),或者可能完全不喜欢 SQLite的使用语法。 例如,我们将使用以下Us...

730

android 保存对象,使用sharedpreferencesAndroid存储对象 -解道Jdon

使用SharedPreferencesAndroid存储对象为什么不用SQLite? 原因多种:除了面向对象关系数据库之间的阻抗不匹配时,SQLite可能是矫枉过正(带来了更多的开销)对于一些简单的用例,或者其用法语句可能会完全不喜欢。其他Android ORM 框架(ORMLite, greenDAO, Sugar ORM, ActiveAndroid, 等)或NOSQL移动数据库,如Co...

weixin_31180441的博客 341

android 存储对象_在Android存储对象

android 存储对象Android使用SQLite的一种替代方法是将Java对象存储SharedPreferences中 。 在这里,我们将研究两种不同的方法。 为什么不为所有存储需求选择SQLite? 原因可能多种多样:除了在面向对象关系数据库之间的阻抗不匹配之外,对于某些简单的用例,SQLite可能会过大(带来更多开销),或者可能完全不喜欢 SQLite的使用语法。 ...

429

使用sharedpreferences保存对象集合的方法

使用sharedpreferences保存对象的方法,sharedpreferences是不能够直接保存对象的,我们需要将对象序列化成一个字符串进行存储。 例如:Person这样一个对象 public static void getJsonStringByEntity(Context context, Object object) { String strJson = ""; ...

qq_33670826的博客 1048

GsonSharedPreferences构建本地数据缓存

转载自http://www.android100.org/html/201408/22/56696.html 刚刚看了一篇IBM的博客,讲的是Android本地数据存储API,感觉实在是太复杂了,对于大部分个人开发者而言,按照这种方式来做自己的项目,实在是一件极其痛苦的事情,作为一名敏捷开发的信徒,实在难以忍受按照IBM那套来做事情,下面给大家介绍一下个人在实践中总结出来的一套数据存储

网络爬虫 888

android 添加arraylist,自定义对象Android ArrayList-保存到SharedPreferences

哔哔one对于保存:public static void saveSharedPreferencesLogList(Context context, List callLog) { SharedPreferences mPrefs = context.getSharedPreferences(Constant.CALL_HISTORY_RC, context.MODE_PRIVATE); ...

weixin_29688227的博客 194

Android储存方式SharedPreferences

SharedPreferences sharedPreferences = getSharedPreferences("peopel", Context.MODE_PRIVATE); Editor editor = sharedPreferences.edit();//获取编辑器 editor.putString("name", "张三"); editor.putInt("age", 4); ed...

Swust_ZzK的博客 270
上一篇: 关于json的一些事
下一篇: 用友盟的组件实现分享内容到新浪微博,微信,朋友圈
live4what
博客等级 码龄15年 24粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值