Android信息存储之 json

来源:互联网 发布:淘宝卖家申请直播 编辑:程序博客网 时间:2024/06/05 00:32

Android存储数据有很多种方法,他们各自有各自的好处。在经过SQL数据库存储信息学习后,我学习GSON存储信息更加简单了。与大家分享一下我的方法:


使用 GSON 存储数据,首先需要在工程中导入Google的Gson包,然后主要就是通过利用gson中的方法将需要存储的信息通过toJson转换为字符串,当需要信息时再通过fromjson方法将字符串转化为原来的类型。

简单的信息存储如:

      
String string = gson.toJson(student,Student.class)   //将作为Student类实例化的student对象转换成json的StringStudent student = gson.fromJson(string,Student.class)    //将sting字符串转化为Student类的对象

带泛型的List之间的转化:

    private Gson gson = new Gson();    private static String s;

实例化gson对象,并创建字符串供后面使用

private void jsonSave(Student student) {        students.add(student);        s = gson.toJson(students);        send(student.getName());//在通知栏发送通知    }

先将student对象添加到链中然后将students链通过toJson转换为字符串

private void btnJson() {        try {            List<Student> students = gson.fromJson(s, new TypeToken<List<Student>>() {            }.getType());            Bundle data = new Bundle();            data.putSerializable("data", toList(students));//将students链转换为可打印的链            Intent intent = new Intent(InputActivity.this, PrintActivity.class);            intent.putExtras(data);            startActivity(intent);        } catch (JsonSyntaxException e) {            e.printStackTrace();        }    }

通过fromJson将字符串转换为原有类型(通过TypeToken类的getType方法获取类型)


gson存储信息的却很方便,但是本例中存在问题,由于字符串是同一个当退出程序再进行输入是之前的字符串会被当前内容所覆盖导致信息丢失,也许是我没有找到解决方法的原因。




1 0