Gson使用简介说明
下文讲述Gson类的简介说明,如下所示:
当然还有很多其他的类库,如:JSON-Java、Gson、Jackson、FastJson
用于解析和生成的方法,fromJson()实现反序列化,toJson()实现序列化
例:
JSON字符串数组
["C","Java","PHP"]
数组示例简介
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()
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。