GSON 生成 JSON 数据实战

🕒 2025-12-24 16:24:08
📁 JSON学习教程
作者:JSONLA小编

在掌握了 JSON 的基础数据类型、数据结构,以及原生 JSONObject 生成 JSON 的方式后,借助专业的 JSON 框架(如 GSON)生成 JSON 数据,能进一步提升开发效率与灵活性 ——GSON 不仅能自动适配 Java 数据类型与 JSON 数据类型的映射,还支持自定义序列化规则,完美适配复杂业务场景下的 JSON 生成需求。相比原生方式,GSON 对 JSON 核心数据类型(string、number、boolean、null、Array 等)的处理更智能化,无需手动逐字段写入,仅需通过 Java Bean 即可快速生成规范的 JSON 数据,同时还能通过配置实现格式化输出、字段名自定义等进阶功能。接下来我们将通过完整的代码演示,详解如何使用 GSON 框架基于 Java Bean 生成 JSON 数据,深入理解 GSON 与 JSON 数据类型、数据结构的适配逻辑。

GSON 生成 JSON 数据

代码演示:

1. 添加依赖  

// https://mvnrepository.com/artifact/com.google.code.gson/gson

compile group: 'com.google.code.gson', name: 'gson', version: '2.8.0'

2.编写代码

package com.myimooc.json.gson;


import com.google.gson.FieldNamingStrategy;

import com.google.gson.Gson;

import com.google.gson.GsonBuilder;

import com.myimooc.json.model.Diaosi;


import java.lang.reflect.Field;


/**

 * 使用 GSON 进行 JSON 相关操作

 * Created by ChangComputer on 2017/5/21.

 */

public class GsonCreateSample {


    public static void main(String[] args) {

        createJsonByGsonBean();

    }


    /**

     *

     * 通过 JavaBean 生成JSON【推荐使用】

     */

    private static void createJsonByGsonBean() {

        Diaosi wangxiaoer = new Diaosi();


        wangxiaoer.setName("王小二");

        wangxiaoer.setAge(25.2);

        wangxiaoer.setBirthday("1990-01-01");

        wangxiaoer.setSchool("蓝翔");

        wangxiaoer.setMajor(new String[]{"理发","挖掘机"});

        wangxiaoer.setHas_girlfriend(false);

        wangxiaoer.setCar(null);

        wangxiaoer.setHouse(null);

        wangxiaoer.setComment("这是一个注释");

        wangxiaoer.setIgnore("不要看见我");


        GsonBuilder gsonBuilder = new GsonBuilder();

        // 设置格式化输出

        gsonBuilder.setPrettyPrinting();

        // 自定义转换策略

        gsonBuilder.setFieldNamingStrategy(new FieldNamingStrategy() {

            @Override

            public String translateName(Field f) {

                if(f.getName().equals("name")){

                    return "NAME";

                }

                return f.getName();

            }

        });

        // 生成Gson

        Gson gson = gsonBuilder.create();

        System.out.println(gson.toJson(wangxiaoer));

    }

}


上述案例充分展现了 GSON 框架在 JSON 生成环节对 JSON 数据类型与数据结构的深度适配,也是企业级开发中高效生成 JSON 的典型实践。从数据类型映射来看,GSON 自动将 Java Bean 中的name(String)转为 JSON 的 string 类型、age(double)转为 JSON 的 number 类型、has_girlfriend(boolean)转为 JSON 的 boolean 类型、major(String 数组)转为 JSON 的 Array 类型、car/house(null)转为 JSON 的 null 类型,完全遵循 JSON 核心数据类型规范,无需手动处理类型转换;从进阶功能来看,通过GsonBuilder不仅能设置 JSON 格式化输出(提升可读性),还能自定义字段命名策略(如将name转为NAME),满足业务对 JSON 字段格式的个性化需求。相比原生 JSONObject 生成 JSON 的方式,GSON 的优势在于 “自动化” 与 “灵活性”—— 基于 Java Bean 的生成方式符合面向对象开发思想,且能通过扩展配置适配各类特殊场景,同时对 null 值、数组等 JSON 核心结构的处理更简洁。掌握 GSON 生成 JSON 的方法,不仅能巩固 JSON 数据类型与结构的理论知识,更能适配实际项目中复杂的 JSON 生成需求。


相关推荐

正在加载... ...