Gson创建和解析Json

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wfk2975019671/article/details/90004677

课程地址:https://www.imooc.com/learn/523
Gson是google开发的一个开源Json解析库,最新版本以及源码可以在官方的github上查看:https://github.com/google/gson

Maven依赖
<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.8.5</version>
</dependency>
创建javaBean
package bean;

import com.google.gson.annotations.SerializedName;

import java.util.Arrays;

/**
 * @Description
 * @auther mohuani
 * @create 2019-05-08 23:00
 */
public class Diaosi {

//    @SerializedName("NAME")  // 通过注解将属性name变成NAME
    private String name;
    private String school;
    private boolean has_girlfriend;
    private double age;
    private Object car;
    private Object house;
    private String[] major;
    private String comment;
    private String birthday;


	// 如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。换句话来说就是,用transient关键字标记的成员变量不参与序列化过程
    private transient String ignore;

    public String getIgnore() {
        return ignore;
    }

    public void setIgnore(String ignore) {
        this.ignore = ignore;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSchool() {
        return school;
    }

    public void setSchool(String school) {
        this.school = school;
    }

    public boolean isHas_girlfriend() {
        return has_girlfriend;
    }

    public void setHas_girlfriend(boolean has_girlfriend) {
        this.has_girlfriend = has_girlfriend;
    }

    public double getAge() {
        return age;
    }

    public void setAge(double age) {
        this.age = age;
    }

    public Object getCar() {
        return car;
    }

    public void setCar(Object car) {
        this.car = car;
    }

    public Object getHouse() {
        return house;
    }

    public void setHouse(Object house) {
        this.house = house;
    }

    public String[] getMajor() {
        return major;
    }

    public void setMajor(String[] major) {
        this.major = major;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }

    public String getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

    @Override
    public String toString() {
        return "Diaosi{" +
                "name='" + name + '\'' +
                ", school='" + school + '\'' +
                ", has_girlfriend=" + has_girlfriend +
                ", age=" + age +
                ", car=" + car +
                ", house=" + house +
                ", major=" + Arrays.toString(major) +
                ", comment='" + comment + '\'' +
                ", birthday='" + birthday + '\'' +
                '}';
    }
}

ps:关键字 transient 如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。换句话来说就是,用transient关键字标记的成员变量不参与序列化过程。

生成json
package gson;

import bean.Diaosi;
import com.google.gson.FieldNamingStrategy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

import java.lang.reflect.Field;

/**
 * @Description
 * @auther mohuani
 * @create 2019-05-09 0:15
 */
public class GsonCreateSample {
    public static void main(String[] args) {
        Diaosi diaosi = new Diaosi();
        diaosi.setName("wfk");
        diaosi.setAge(25.2);
        diaosi.setBirthday("1996-07-01");
        diaosi.setSchool("蓝翔");
        diaosi.setMajor(new String[] {"理发", "挖掘机"});
        diaosi.setHas_girlfriend(true);
        diaosi.setCar(null);
        diaosi.setHouse(null);
        diaosi.setComment("这是一个注释1");
        diaosi.setIgnore("忽略这条属性");

        Gson gson = new Gson();
        System.out.println(gson.toJson(diaosi));

        // 美化调试
        GsonBuilder gsonBuilder = new GsonBuilder();
        gsonBuilder.setPrettyPrinting();
        gsonBuilder.setFieldNamingStrategy(new FieldNamingStrategy() {
            @Override
            public String translateName(Field field) {
                // 将原有的属性name变成NAME
                if (field.getName().equals("name")) {
                    return "NAME";
                }
                return field.getName();
            }
        });
        Gson gson1 = gsonBuilder.create();
        System.out.println(gson1.toJson(diaosi));
    }
}

猜你喜欢

转载自blog.csdn.net/wfk2975019671/article/details/90004677