在掌握了 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 数据类型、数据结构的适配逻辑。
代码演示:
// https://mvnrepository.com/artifact/com.google.code.gson/gson
compile group: 'com.google.code.gson', name: 'gson', version: '2.8.0'
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));
}
}
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 生成需求。正在加载... ...