Gson的简单使用

Android  2024年10月17日 am7:27发布7天前更新 91es.com站长
8 0 0

前言

简单记录一下Gson的使用。Gson是Google提供的一个Java库,用于将Java对象转换为JSON格式数据或将JSON格式数据转换为Java对象。

开源的库

https://github.com/google/gson

正文

build.gradle中

implementation 'com.google.code.gson:gson:2.11.0'

下面简单记录一下相关方法的使用。

//初始化Gson
Gson mGson = new GsonBuilder().setPrettyPrinting().create();

定义一个Student类

public class Student {
    private final int age;
    private final String name;
    private final float score;

    public Student(int age, String name, float score) {
        this.age = age;
        this.name = name;
        this.score = score;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public float getScore() {
        return score;
    }

    @NonNull
    @Override
    public String toString() {
        return "Student{" +
                "age=" + age +
                ", name='" + name + '\'' +
                ", score=" + score +
                '}';
    }
}

toJson()和fromJson()都有重写,看具体传入的值,这里不深究。

toJson()

转换为Json数据。

示例1
Student student0 = new Student(18, "王麻", 699);
String studentString = mGson.toJson(student0);
Log.d(TAG, "studentString : "+ studentString);

输出结果

studentString : {
  "age": 18,
  "name": "王麻",
  "score": 699.0
}
示例2
ArrayList<Student> mList = new ArrayList<>();
//添加数据
mList.add(new Student(16, "张三", 500));
mList.add(new Student(17, "李四", 490));
mList.add(new Student(15, "王五", 580));

//转换为Gson
String listString  =  mGson.toJson(mList);
Log.d(TAG, "listString : "+ listString);

输出结果

listString : [
  {
    "age": 16,
    "name": "张三",
    "score": 500.0
  },
  {
    "age": 17,
    "name": "李四",
    "score": 490.0
  },
  {
    "age": 15,
    "name": "王五",
    "score": 580.0
  }
]

fromJson()

解析Json数据。这里对应上面toJson()

示例1
Student student = mGson.fromJson(studentString, Student.class);
Log.d(TAG, "student : "+ student);

输出结果

student : Student{age=18, name='王麻', score=699.0}
示例2
ArrayList<Student> studentList = mGson.fromJson(listString, new TypeToken<ArrayList<Student>>(){}.getType());
Log.d(TAG, "studentList : "+ studentList);

输出结果

studentList : [Student{age=16, name='张三', score=500.0}, Student{age=17, name='李四', score=490.0}, Student{age=15, name='王五', score=580.0}]

toJsonTree()

Student student = new Student(18, "王麻", 699);
JsonElement studentJsonElement = mGson.toJsonTree(student);
Log.d(TAG, "studentJsonElement : "+ studentJsonElement);

输出结果

studentJsonElement : {"age":18,"name":"王麻","score":699.0}

参考文章

  1. 使用Gson解析Json数据

 历史上的今天

  1. 2021: Bitmap转String进行数据库MySQL保存(0条评论)
  2. 2021: 叶芝 :当你老了(冰心版)(0条评论)
  3. 2019: 朱以撒:浅色寂语(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

Android系统签名转换为keystore

为啥需要keystore通常,我们在做系统用户开发时,需要给应用加上系统签名,使其拥有系统权限,签名方式可以使用系统源码中的platform.pk8、platform.x509.pem、signapk.jar对应用签名。PS:参考之前的文章《利用signapk.jar工具对apk文件进行签名》...

Kotlin之泛型

前言简单记录一下泛型的使用,记录于此,方便自己查阅。正文什么是泛型泛型即“参数化类型”,就是将具体的类型变成参数化类型,在声明一个泛型时,传递的是一个类型形参,在调用时传递的是一个类型实参。当定义泛型时,泛型是在类型名之后、主构造函数之前用尖括号“<>”括起来的大写字母类型参数。当定义泛...

肖复兴:荔枝

我第一次吃荔枝,是28岁的时候。那是十几年前,我刚从北大荒回到北京,家中只有孤零零的老母。站在荔枝摊前,脚挪不动步。那时,北京很少见到这种南国水果,时令一过,不消几日,再想买就买不到了。想想活到28岁,居然没有尝过荔枝的滋味,再想想母亲快70岁的人了,也从来没有吃过荔枝呢!虽然一斤要好几元,挺贵的,...

柴静:真实的人性有无尽的可能

1几年前我采访过一个人。他被诬陷嫖妓,证据是卖淫者的供述,他被拘留了42天,放了。校长当不了了,儿子的婚事也吹了“他爹是个大流氓,人还能好么?”他告了十六年,路上带不了两个钱还叫人掏包了,捡人家饭吃。我问他最难受的是什么。“最难忍受就是开党员会的时候我不是党员了”他说。2我们找到了当...

Beyond Compare4 30天试用到期的解决办法

网上有很多关于Beyond Compare4破解方法,国内还是没有习惯付费软件,也有偶尔跟着潮流。这个软件功能太强大了,有时候不得不佩服开发者,我只是偶尔用一下,下面是摘抄网络的内容,记录于此,方便自己查阅。隐藏内容!密码验证后才能查看!提交PS: 上面只是个人观点,也就偶尔使用此工具,如果是...

gcc编译器相关介绍

前言简单记录gcc编译器相关内容正文gcc (GNU Compiler)是GNC推出的多平台编译器,可以将C语言、C++源程序编译成可以执行的文件。gcc支持后缀.c C语言源代码.h 程序所包含的头文件.i 已经预处理过的C源代码文件.s 汇编语言源代码文件.o 编译后的目标...