Gson的简单使用

Android  2024年10月17日 am7:27发布2个月前更新 城堡大人
60 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、 本站网址: https://www.91es.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

穆旦:冥想

为什么万物之灵的我们,遭遇还比不上一棵小树?今天你摇摇它,优越地微笑,明天就化为根下的泥土。为什么由手写出的这些字,竟比这只手更长久,健壮?它们会把腐烂的手抛开,而默默生存在一张破纸上。因此,我傲然生活了几十年,仿佛曾做着万物的导演,实则在它们长久的秩序下我只当一会小小的演员。...

使用adb shell命令启动动画

adb shell 命令Adb的全称为Android Debug Bridge:android调试桥梁。Android的初衷是用adb这样的一个工具来协助开发人员在开发android应用的过程中更快更好的调试apk,因此adb具有安装卸载apk、拷贝推送文件、查看设备硬件信息、查看应用程序占用...

顾城:树枝的疏忽

我喜古诗,不因文学史,不因人们的仰望,而在它的美丽,文字清简明润,如玉如天,在于它显示出的中国哲思,那一无言就在眼前,若张九龄句:海上生明月,天涯共此时。诗如禅,如顿悟——骤然风动云散,黑暗退隐,你看见万物万象,明媚自如。“红豆生南国,春来发几枝”,气象柔和空阔;红豆生于南国,红豆生出南国,色空互...

自定义PopTextSeekBar记录

前言PopTextSeekBar意思是在拖动Seekbar时顶部显示提示框,并跟随Thumb进行移动(如图)。正文如图思路完全自定义PopTextSeekBar(继承View),画顶部的弹窗View非完全自定义PopTextSeekBar(继承SeekBar)+PopupWindo...

C语言输出格式符

前言简单记录一下C语言中输出格式符正文C语言中常用的打印方式:printf("%d", a);除了d,还有其他的格式符,下面简单记录一下。十进制整数%d%i举个例子,也就是:printf("%i", a);PS: 后续的类似,不在举例十进制 无符号整数%u十六进...

JNI之List集合

前言之前学了JNI中传输和创建对象数组,那如果穿集合呢?因此也整理一下,方便自己查阅。这里以ArrayList为例。正文还是在之前的基础改的,具体细节,这里不重复了。隐藏内容!评论可看后才能查看!评论可看参考文章《JNI开发-Java传递List集合对象到C/C++》《...