Gson使用简介说明

java-教程王 Java经验 发布时间:2022-03-06 21:16:51 阅读数:3809 1
下文讲述Gson类的简介说明,如下所示:

Gson简介

Gson是java中操作json数据的一种框架
当然还有很多其他的类库,如:JSON-Java、Gson、Jackson、FastJson

Gson的基本用法

Gson类库对外提供fromJson()和toJson()中
用于解析和生成的方法,fromJson()实现反序列化,toJson()实现序列化
例:
基本数据类型的解析
Gson gson = new Gson();
int i = gson.fromJson("800", int.class);              //800
double d = gson.fromJson("\"88.88\"", double.class);  //88.88
boolean b = gson.fromJson("true", boolean.class);     // true
String str = gson.fromJson("java265.com", String.class);   // String

基本数据类型的生成

Gson gson = new Gson();
String jsonNumber = gson.toJson(800);       // 800
String jsonBoolean = gson.toJson(false);    // false
String jsonString = gson.toJson("java265.com"); //"String"

POJO类的生成与解析

public class User {
    //省略其它
    public String name;
    public int age;
    public String emailAddress;
}

生成JSON
Gson gson = new Gson();
User user = new User("java265.com",8889);
String jsonObject = gson.toJson(user); // {"name":"java265.com","age":8889}

解析JSON
Gson gson = new Gson();
String jsonString = "{\"name\":\"java265.com\",\"age\":8889}";
User user = gson.fromJson(jsonString, User.class);

属性重命名 @SerializedName 注解的使用

下文是POJO类解析为json字符串的示例分享
 json
{"name":"java265.com","age":8889,"emailAddress":"java265@example.com"}
实际
{"name":"java265.com","age":8889,"email_address":"java265@example.com"}
上面对象的类名可以采用相应的注解定义,如:
 
@SerializedName("email_address")
public String emailAddress;

@SerializedName(value = "emailAddress", alternate = {"email", "email_address"})
public String emailAddress;
当上面的三个属性(email_address、email、emailAddress)都中出现任意一个时均可以得到正确的结果。
注:当多种情况同时出时,以最后一个出现的值为准。

Gson中使用泛型

上面了解的JSON中的Number、boolean、Object和String,现在说一下Array。
JSON字符串数组
["C","Java","PHP"]
数组示例简介
Gson gson = new Gson();
String jsonArray = "[\"C\",\"Java\",\"PHP\"]";
String[] strings = gson.fromJson(jsonArray, String[].class);

------解析为list-----
Gson gson = new Gson();
String jsonArray = "[\"C\",\"Java\",\"PHP\"]";
String[] strings = gson.fromJson(jsonArray, String[].class);
List<String> stringList = gson.fromJson(jsonArray, new TypeToken<List<String>>() {}.getType());

注:TypeToken的构造方法是protected修饰的
 所以上面才会写成new TypeToken<List<String>>() {}.getType()
  而不是 new TypeToken<List<String>>().getType()
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202203/16465726562416.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者