package utils;
import com.google.gson.*;
import java.lang.reflect.Array;
import java.util.Map;
/**
* 使用 gson 封装的操作 json 的工具类
*/
public final class EasyJson {
/**
* 全局的 Gson 转换对象
*/
private static final Gson gson = new Gson();
/**
* 通过父级对象实现树形结构
*/
private EasyJson parent;
/**
* 保存数据的对象
* 树形结构的节点,可以作为分支节点或者叶节点
*/
private JsonElement data;
private EasyJson(EasyJson parent, boolean isObj) {
this(parent, isObj ? new JsonObject() : new JsonArray());
}
private EasyJson(EasyJson parent, JsonElement data) {
this.data = data;
this.parent = parent;
}
/**
* 获取EasyJson实例
*
* @return 默认的 JsonObject
*/
public static EasyJson getInstance() {
return getInstance(null, Boolean.TRUE);
}
/**
* 获取EasyJson实例
*
* @param isObj 如果为true,构造实例为JsonObject,反之为JsonArray
*/
public static EasyJson getInstance(boolean isObj) {
return getInstance(null, isObj);
}
/**
* 获取EasyJson实例
*
* @param parent 上层实例
* @param isObj 是否构造为JsonObject
*/
public static EasyJson getInstance(EasyJson parent, boolean isObj) {
return new EasyJson(parent, isObj);
}
/**
* 获取EasyJson实例
*
* @param data 指定构造的Json数据
*/
public static EasyJson getInstance(JsonElement data) {
return getInstance(null, data);
}
/**
* 获取EasyJson实例
*
* @param parent 上层实例
* @param data 指定构造的Json数据
*/
public static EasyJson getInstance(EasyJson parent, JsonElement data) {
return new EasyJson(parent, data);
}
/**
* 创建下一层EasyJson对象,并将新建的对象返回
*
* @param name 新建的EasyJson对象在上级对象中的名称
* @return 返回新建节点的指针
*/
public EasyJson subObj(String name) {
EasyJson sub = getInstance(this, Boolean.TRUE);
this.put(name, sub.data);
return sub;
}
/**
* 基于当前 JsonArray 对象,创建下一层EasyJson对象
*
* @return 返回新建节点的指针
*/
public EasyJson subObj() {
EasyJson sub = getInstance(this, Boolean.TRUE);
this.add(sub.data);
return sub;
}
/**
* 构建新的 JsonArray 节点,并返回节点指针
*
* @param
使用gson封装操作json的工具类
最新推荐文章于 2024-06-28 03:31:56 发布
本文介绍如何利用Gson库创建一个方便的工具类,用于在Java中进行JSON对象的序列化和反序列化操作。通过实例代码演示了如何封装基本的JSON解析和生成方法。
摘要由CSDN通过智能技术生成