大家好,欢迎来到IT知识分享网。
目录
1、Gson简介
Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,其主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象。
Gson是目前功能最强的JSON解析器之一,并且不需要依赖额外的Jar包,能够直接运行在JAVA平台。相对于FastJson,更能准确的转换复杂的Bean。
2、Json简介
一般来说如果你要使用Gson,那么你肯定对json有所了解,为了防止意外,让我们再来讲解一下这个编程世界的交流货币——JSON数据。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,具有易读易写的特点,广泛应用于Web开发和数据传输领域。与 XML 相比,它不那么冗长且更具可读性,人类很容易读写,机器也很容易解析和生成。
JSON起源于JavaScript语言,但已成为一种独立于编程语言的数据格式。它由键值对组成,类似于JavaScript中的对象,但更加简洁和通用化。JSON数据以文本形式存储,易于解析和生成,因此被广泛应用于数据交换和存储。
JSON的数据由键值对组成,每个键值对之间用逗号分隔,{ }包裹表示一个对象,[ ]包裹表示一个数组,这是最基本的数据结构,了解这个基本上就差不多了。例如下面:
[ { "name": "Mike", "age": 30, "city": "New York" }, { "name": "Tom", "age": 18, "city": "Londom" } ]
JSON的内容很简单,但作为一个编程世界里的货币,在数据传输过程中,如何对其进行转换是一个很普遍的问题。
3、Gson快速上手
3.0、导入依赖
目前最新版本是2.11.0,我们选择2.10.1版本,在pom文件中添加Maven的Gson依赖,我们前面提到过,Gson是不依赖其他Jar包的。
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version> </dependency>
3.1、创建Gson对象
3.1.1 new Gson()
Gson gson = new Gson();
3.1.2 GsonBuilder.build()
GsonBuilder builder = new GsonBuilder(); Gson gson = builder.create();
3.2、对象—>Json
People P1=new People("菠萝吹雪",15,"黑龙江"); People P2=new People("橙留香",16,"上海"); Gson gson=new GsonBuilder() .setPrettyPrinting() .create(); String P11=gson.toJson(P1); String P21=gson.toJson(P2); System.out.println(P11); System.out.println(P21);
注意: .setPrettyPrinting() 方法是为了让 JSON格式输出的更美观,这也是Gson的一大优点。
控制台输出结果如下:
3.3、Json—>对象
String jsonP1="{\n" + " \"name\": \"菠萝吹雪\",\n" + " \"age\": 15,\n" + " \"city\": \"黑龙江\"\n" + "}"; String jsonP2="{\n" + " \"name\": \"橙留香\",\n" + " \"age\": 16,\n" + " \"city\": \"上海\"\n" + "}"; Gson gson=new Gson(); People people1 = gson.fromJson(jsonP1, People.class); People people2 = gson.fromJson(jsonP2, People.class); System.out.println(people1); System.out.println(people2);
控制台输入如下:
此时这里从JSON字符串转换成了对应的People对象
3.4、List集合转换
List与Json之间的互相转换:
void test03(){ List<People> peopleList=new ArrayList<>(); peopleList.add(new People("菠萝吹雪",15,"黑龙江")); peopleList.add(new People("橙留香",16,"上海")); Gson gson=new GsonBuilder() .setPrettyPrinting() .create(); //将List转化为Json对象 String listjson = gson.toJson(peopleList); System.out.println(listjson); //将Json对象转化为List对象 List<People> PeopleList = gson.fromJson(listjson, new TypeToken<List<People>>() {}.getType()); System.out.println(PeopleList); }
控制台输出如下:
3.4、Map集合转换
转换Map的步骤和转换List的步骤一模一样,代码如下:
Map<String,People>map=new HashMap<>(); map.put("people1",new People("菠萝吹雪",15,"黑龙江")); map.put("people2",new People("橙留香",16,"上海")); Gson gson=new GsonBuilder() .setPrettyPrinting() .create(); String mapJson = gson.toJson(map); System.out.println(mapJson); Map<String,People>jsonMap = gson.fromJson(mapJson, new TypeToken<Map<String, People>>() {}.getType()); System.out.println(jsonMap);
控制台输出如下:
4、结语
OK这次到这里就结束了,想要了解更多可以访问官网https://github.com/google/gson。
下次再见!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/121849.html