Gson是Google提供的,用来在Java对象和Json数据之间进行映射的java类库。
可以将一个Json字符转换为一个Java对象,或者将一个Java转换为Json字符串。
Gson提供了fromJson() 和 toJson()两个直接用于解析和生成的方法。
fromJson()实现反序列化,toJson()实现了序列化。
@NoArgsConstructor
@AllArgsConstructor
@Data
@ToString
@Builder
public class PersonJson{
private String name;
private Integer age;
private String hobby;
}
将Java对象转换成Json数据
PersonJsonperson;
@Before
public void prepare() {
person =new PersonJson("tree", 23, "gambling.");
}
/**
* 将JavaBean转换成Json字符串
*/
@Test
public void index() {
Gson gson =new Gson();
System.out.println(gson.toJson(person));
System.out.println("===================");
Gson gson1 =new GsonBuilder().create();
System.out.println(gson1.toJson(person));
}
将List 或者 Map 转换成 Json字符串
PersonJsonperson;
List
Map
@Before
public void prepare() {
person =new PersonJson("tree", 23, "Design a program");
list.add(person);
map.put(person.getName(), person);
person =new PersonJson("sammy", 24, "Make up");
list.add(person);
map.put(person.getName(), person);
}
/**
* 将 List 和 Map转换成 Json字符串
*/
@Test
public void index() {
Gson gson =new Gson();
System.out.println(gson.toJson(list));
System.out.println("=================");
System.out.println(gson.toJson(map));
}
将Json字符串转化成 Java对象
//将Json文件转化成Java对象
@Test
public void index() {
String jsonStr ="{\"name\":\"Warriors\",\"age\":\"22\",\"HOBBY\":\"basketball\"}";
Gson gson =new GsonBuilder().create();
PersonJson person = gson.fromJson(jsonStr, PersonJson.class);
System.out.println(person.getName());
System.out.println(person.getAge());
System.out.println(person.getHobby());
System.out.println(person.toString());
}
@SerializedName 注解可对Java对象的属性进行重命名
使得Json字符串中的属性名可变化
private Stringname;
private Integerage;
@SerializedName(value ="hobby", alternate ={"HOBBY", "Hobby"})
private Stringhobby;