Java Gson:使用 GsonBuilder 构建 Gson 对象


#Java Gson#


简介

GsonBuilder 是 Gson 的构造器。

为什么要为 Gson 类加个 Builder ?

1、Gson 本身有很多配置,通过有参的构造函数注入配置,但是有参构造函数无法直接使用(不是 public),而无参构造函数使用的是默认配置。 2、Gson 配置太多,通过 Bulder,更易读。

示例

示例:默认配置

package org.example;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import lombok.Data;
import org.junit.jupiter.api.Test;

public class TestGson {

    @Data
    public static class UserInfo {
        private String useName;
    }

    @Test
    public void test() {
        GsonBuilder gsonBuilder = new GsonBuilder();
        Gson gson = gsonBuilder.create();
        UserInfo userInfo = new UserInfo();
        userInfo.setUseName("李白");
        String jsonStr = gson.toJson(userInfo);
        System.out.println(jsonStr);
        // 以上代码输出: {"useName":"李白"}
    }

}

示例:字段命名使用小写和下划线

package org.example;

import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import lombok.Data;
import org.junit.jupiter.api.Test;

public class TestGson {

    @Data
    public static class UserInfo {
        private String useName;
    }

    @Test
    public void test_01() {
        GsonBuilder gsonBuilder = new GsonBuilder();
        Gson gson = gsonBuilder
                .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
                .create();
        UserInfo userInfo = new UserInfo();
        userInfo.setUseName("李白");
        String jsonStr = gson.toJson(userInfo);
        System.out.println(jsonStr);
        // 以上代码输出: {"use_name":"李白"}
    }


    @Test
    public void test_02() {
        GsonBuilder gsonBuilder = new GsonBuilder();
        Gson gson = gsonBuilder
                .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
                .create();
        UserInfo userInfo = gson.fromJson("{\"use_name\":\"李白\"}", UserInfo.class);
        System.out.println(userInfo);
        // 以上代码输出: TestGson.UserInfo(useName=李白)
    }

}

( 本文完 )