赞
踩
想必大家在日常编码过程中肯定少不了使用一些JSON工具包的吧,比如 Gson、FastJson、JackSon、Json lib 等等,它们都属于 JSON 工具包。我个人比较喜欢 Gson,接下来咋们使用 Gson 进行一些常规的 Json 转换等简单运用吧。
⚠️注意:代码中使用了 Guava 工具包,在执行下述代码时请注意添加相关的 jar 包依赖,Guava 工具包与本次的重点 Gson 无关,仅用来快速创建 List 等场景。本次使用的 Gson 版本为 2.8.7 ,测试时请尽量保持一致。
Gson 是一个 Java 库,是目前功能最全的 Json 解析神器。Gson 的应用主要为 toJson 与 fromJson 两个转换函数,无依赖,不需要例外额外的 jar,能够直接跑在 JDK 上。它可用于将 JSON 字符串转换为等效的 Java 对象。Gson 可以处理任意 Java 对象,包括您没有源代码的预先存在的对象。
Gson官方地址:https://github.com/google/gson
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.7</version>
</dependency>
dependencies {
implementation 'com.google.code.gson:gson:2.8.7'
}
Maven中央仓库 Gson 下载连接:gson-2.8.7
本站附件 Gson 下载链接:gson-2.8.7
如果 Maven 中央仓库访问下载较慢则建议直接下载本站附件提供的 Gson 包。
package com.gson; import com.google.common.collect.Lists; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import java.io.Serializable; import java.lang.reflect.Modifier; import java.util.List; /** * Gson测试类 * @author dev.hy */ public class GsonClass { public static void main(String[] args) { GsonEntity entity4 = new GsonEntity("<!DOCTYPE html><html><head><meta charset=\"utf-8\"><title>hyblogs-Gson</title></head><body> <h1>dev.hy</h1> <p>huangyong。</p></body></html>", 4); GsonEntity entity3 = new GsonEntity("dev.hyblogs.com", 3, Lists.newArrayList(entity4)); GsonEntity entity2 = new GsonEntity("dev.hyblogs", 2, Lists.newArrayList(entity3), "Public-2", "Hello!!!"); GsonEntity entity1 = new GsonEntity("dev.hy", 1, Lists.newArrayList(entity2), "Public-1", "Fuck it!!"); GsonEntity entity0 = new GsonEntity("dev", 0, Lists.newArrayList(entity1), "Public-0", "Oh!!"); /* 将Java对象转换成Json字符串 */ String jsonStr0 = new GsonBuilder().create().toJson(entity0); System.out.println("jsonStr0:" + jsonStr0); /* 将Java对象转换成Json字符串--保留值为空(null)的字段 */ String jsonStr1 = new GsonBuilder().serializeNulls().create().toJson(entity0); System.out.println("jsonStr1:" + jsonStr1); /* 将Java对象转换成Json字符串--根据Modifier选择移除的访问修饰符(private) */ String jsonStr2 = new GsonBuilder().excludeFieldsWithModifiers(Modifier.PRIVATE).create().toJson(entity0); System.out.println("jsonStr2:" + jsonStr2); /* 将Java对象转换成Json字符串--根据Modifier选择移除的访问修饰符(public) */ String jsonStr3 = new GsonBuilder().excludeFieldsWithModifiers(Modifier.PUBLIC).create().toJson(entity0); System.out.println("jsonStr3:" + jsonStr3); /* 将Java对象转换成Json字符串--根据Modifier选择移除的访问修饰符(protected) */ String jsonStr4 = new GsonBuilder().excludeFieldsWithModifiers(Modifier.PROTECTED).create().toJson(entity0); System.out.println("jsonStr4:" + jsonStr4); /* 将Java对象转换成Json字符串--根据Modifier选择移除的访问修饰符(static) */ String jsonStr5 = new GsonBuilder().excludeFieldsWithModifiers(Modifier.STATIC).create().toJson(entity0); System.out.println("jsonStr5:" + jsonStr5); /* 将Java对象转换成Json字符串--禁用Html转义 */ String jsonStr6 = new GsonBuilder().disableHtmlEscaping().create().toJson(entity0); System.out.println("jsonStr6:" + jsonStr6); /* 将Json字符串转换成Java对象(含List对象) */ GsonEntity gsonEntity = new Gson().fromJson(jsonStr0, GsonEntity.class); System.out.println("gsonEntity:" + gsonEntity); } /** * Gson测试实体类 */ static class GsonEntity implements Serializable { private static final long serialVersionUID = 2279477648424876248L; /** Name */ private String name; /** Code */ private Integer code; /** Children */ List<GsonEntity> children; /** Public Field */ public String publicField; /** Static Field */ static int staticField; /** Transient Field */ transient String transientField; public GsonEntity() {
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。