Gson是何方妖孽

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 list =new ArrayList<>();

Map map =new HashMap<>();

@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;

你可能感兴趣的:(Gson是何方妖孽)