com.github.hugh.json.gson.JsonObjects Maven / Gradle / Ivy
package com.github.hugh.json.gson;
import com.github.hugh.json.exception.ToolboxJsonException;
import com.github.hugh.json.gson.adapter.MapTypeAdapter;
import com.github.hugh.util.EmptyUtils;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.internal.LinkedTreeMap;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 由于使用{@link JsonObjectUtils}的方法获取值时需要每次将转{@link JsonObject}作为参数传入,所以该类在new 对象时将需要转换的参数传入,然后转换成{@link JsonObject}
* 而后只需要使用get方法获取对象中的参数即可。
*
* @author hugh
* @since 1.5.2
* @deprecated 因明名方式过长,为了简化,2.4.11后使用{@link Jsons}
*/
@Deprecated
public class JsonObjects extends Jsons {
// private JsonObject jsonObject;
public JsonObjects() {
super();
}
public JsonObjects(T object) {
super(object);
}
//
// /**
// * 无参构造
// */
// public JsonObjects() {
// this.jsonObject = new JsonObject();
// }
//
// /**
// * 带参构造
// * 支持字符于泛型
// * 2.3.11后支持{@link Map}泛型
// *
// * @param object 参数
// * @param 参数类型
// */
// public JsonObjects(T object) {
// if (object instanceof String) {
// this.jsonObject = parse(object);
// } else {
// this.jsonObject = parse(toJson(object));
// }
// }
//
// /**
// * jsonObject对象为null、或者对象长度为0
// *
// * @return boolean {@code true} jsonObject为空
// */
// public boolean isNull() {
// return isJsonNull(jsonObject) || jsonObject.size() == 0;
// }
//
// /**
// * jsonObject 不为空
// *
// * @return boolean {@code true} jsonObject不为空
// * @since 1.6.12
// */
// public boolean isNotNull() {
// return !isJsonNull(jsonObject);
// }
//
/**
* 获取gson中对应的{@link JsonObject}后放入封装的{@link JsonObjects}中,方便后续使用
*
* @param key 键
* @return {@link JsonObjects}
* @since 1.7.4
*/
public JsonObjects getThis(String key) {
final Jsons aThis = super.getThis(key);
return new JsonObjects(aThis.toJson());
}
//
// /**
// * get{@link JsonArray}
// *
// * @param key 键
// * @return {@link JsonArray} json中获取key的{@link JsonArray} 值,没有返回{@code null}
// */
// public JsonArray getJsonArray(String key) {
// return getJsonArray(jsonObject, key);
// }
//
// /**
// * 获取{@link JsonObject}中对应key的{@link JsonObject}值。
// *
// * @param key 键
// * @return {@link JsonObject} json中获取key的JsonObject值,没有返回{@code null}
// */
// public JsonObject getJsonObject(String key) {
// return getJsonObject(jsonObject, key);
// }
//
// /**
// * 获取{@link JsonObject}中对应key的字符串值。
// *
// * @param key 键
// * @return String json中获取key的Integer值,没有返回{@code null}
// */
// public String getString(String key) {
// return getString(jsonObject, key);
// }
//
// /**
// * 获取{@link JsonObject}中对应key的int值。
// *
// * @param key 键
// * @return int 获取key的Integer值,没有返回{@code 0}
// */
// public int getInt(String key) {
// return getInt(jsonObject, key);
// }
//
// /**
// * 获取{@link JsonObject}中对应key的{@link Integer}值。
// *
// * @param key KEY
// * @return Integer 获取key的{@link Integer}值,没有返回{@code null}
// * @since 1.5.4
// */
// public Integer getInteger(String key) {
// return getInteger(jsonObject, key);
// }
//
// /**
// * 获取{@link JsonObject}中对应key的double值。
// *
// * @param key 键
// * @return double json中获取key的Double值,没有返回{@code 0}
// */
// public double getDoubleValue(String key) {
// return getDoubleValue(jsonObject, key);
// }
//
// /**
// * 获取{@link JsonObject}中对应key的{@link Double}值。
// *
// * @param key Key
// * @return Double key的{@link Double}值,没有返回{@code null}
// * @since 1.5.4
// */
// public Double getDouble(String key) {
// return getDouble(jsonObject, key);
// }
//
// /**
// * 获取{@link JsonObject}中对应key的long值。
// *
// * @param key 键
// * @return double json中获取key的long值,没有返回{@code 0}
// * @since 1.5.2
// */
// public long getLongValue(String key) {
// return getLongValue(jsonObject, key);
// }
//
// /**
// * 以空值安全的方式从JsonObject中获取一个Long.
// *
// * @param key Key
// * @return Long json中没有获取key的value时返回{@code null}
// * @since 1.5.4
// */
// public Long getLong(String key) {
// return getLong(jsonObject, key);
// }
//
// /**
// * 校验 {@link #jsonObject}中根据key获取到的value,是否当前传入的值相同
// *
// * @param key 键
// * @param value value
// * @return boolean {@code true} 相同
// * @since 1.5.11
// */
// public boolean isEquals(String key, String value) {
// if (isNull()) {
// return false;
// }
// String string = getString(key);
// if (EmptyUtils.isEmpty(string)) {
// return false;
// }
// return string.equals(value);
// }
//
// /**
// * {@link JsonObject} 根据key获取value是否与传递的value不同
// *
// * @param key 键
// * @param value 值
// * @return boolean 不同返回{@code true}
// * @since 2.3.4
// */
// public boolean isNotEquals(String key, String value) {
// return !isEquals(key, value);
// }
//
// /**
// * 将{@link JsonObjects#jsonObject}内的json对象转换成json格式的字符串
// *
// * @return String
// * @since 1.6.6
// */
// public String toJson() {
// return toJson(jsonObject);
// }
//
// /**
// * 将{@link #jsonObject} 转换为对应的实体
// *
// * 默认使用yyyy-MM-dd HH:mm:ss 格式的字符串转化为{@link Date}对象
// *
// *
// * @param classOfT 实体类
// * @param 泛型
// * @return T 实体
// * @since 1.6.7
// */
// public T formJson(Class classOfT) {
// return fromJson(this.jsonObject, classOfT);
// }
//
// /**
// * 将{@link #jsonObject} 转换为对应的实体
// * 该方法主要作用与解析日期时、json字符串中的值为时间戳(long)类型时
// * 2.3.14 之后直接使用{@link #formJson(Class)} 即可
// *
// * @param classOfT 实体类
// * @param 泛型
// * @return T 实体
// * @since 1.6.13
// */
// @Deprecated
// public T fromJsonTimeStamp(Class classOfT) {
// return fromJsonTimeStamp(this.jsonObject.toString(), classOfT);
// }
//
// /**
// * 重写
// *
// * @return String
// */
// @Override
// public String toString() {
// return this.jsonObject.toString();
// }
//
/**
* 向Json对象中中添加key-value
*
* @param key 键
* @param value 值
* @param value 参数类型
* @return JsonObjects
* @since 1.7.6
*/
public JsonObjects addProperty(String key, E value) {
return (JsonObjects) super.addProperty(key, value);
// if (this.jsonObject == null) {
// this.jsonObject = new JsonObject();
// }
// if (value instanceof String) {
// this.jsonObject.addProperty(key, (String) value);
// } else if (value instanceof Integer) {
// this.jsonObject.addProperty(key, (Integer) value);
// } else if (value instanceof Double) {
// this.jsonObject.addProperty(key, (Double) value);
// } else if (value instanceof Long) {
// this.jsonObject.addProperty(key, (Long) value);
// } else if (value instanceof Boolean) {
// this.jsonObject.addProperty(key, (Boolean) value);
// } else {
// throw new ToolboxJsonException("Not supported type : " + value.getClass().getName());
// }
// return this;
}
//
// /**
// * 移除{@link #jsonObject}key对应的属性
// *
// * @param key KEY
// * @return JsonElement
// * @since 2.0.0
// */
// public JsonElement removeProperty(String key) {
// return this.jsonObject.remove(key);
// }
//
// /**
// * 获取当前对象中的list数据,并且转换为对应的list实体集合
// *
// * @param key 获取集合的key
// * @param clazz 需要转换的类
// * @param 类型
// * @return List
// * @since 2.1.7
// */
// public List toList(String key, Class clazz) {
// JsonArray jsonArray = getJsonArray(this.jsonObject, key);
// assert jsonArray != null;
// if (clazz == null) {
// return toArrayList(jsonArray);
// }
// return toArrayList(jsonArray, clazz);
// }
//
// /**
// * 转化为list
// *
// * 由于使用了{@link MapTypeAdapter} 转换器 ,默认返回的结果对象为{@link LinkedTreeMap}
// *
// *
// * @param key 获取集合的key
// * @param 类型
// * @return List
// * @since 2.1.7
// */
// public List toList(String key) {
// return toList(key, null);
// }
//
// /**
// * 获取{@link JsonObject}中对应key的{@link Date}。
// *
// * @param key 键
// * @return Date 日期对象
// * @since 2.1.8
// */
// public Date getDate(String key) {
// return getDate(this.jsonObject, key);
// }
//
// /**
// * 获取{@link JsonObject}中对应key的日期对象,并转化为字符串。
// *
// * @param key KEY
// * @return String 完整时间格式的字符串:yyyy-MM-dd HH:mm:ss
// * @since 2.1.8
// */
// public String getDateStr(String key) {
// return getDateStr(this.jsonObject, key);
// }
//
// /**
// * 获取{@link JsonObject}中对应key的日期对象,并转化为字符串。
// *
// * @param key KEY
// * @param pattern 时间格式
// * @return String
// * @since 2.1.8
// */
// public String getDateStr(String key, String pattern) {
// return getDateStr(this.jsonObject, key, pattern);
// }
//
// /**
// * 将json对象转化为map
// *
// * @param KEY
// * @param VALUE
// * @return Map
// * @since 2.2.2
// */
// public Map toMap() {
// return toMap(this.jsonObject);
// }
//
// /**
// * 将json对象转化为map,根据key进行升序排序
// *
// * @param KEY
// * @param VALUE
// * @return Map
// * @since 2.3.12
// */
// public Map toMapSortByKeyAsc() {
// return toMapSortByKeyAsc(this.jsonObject);
// }
//
// /**
// * 将json对象转化为map,根据key进行降序排序
// *
// * @param KEY
// * @param VALUE
// * @return Map
// * @since 2.3.12
// */
// public Map toMapSortByKeyDesc() {
// return toMapSortByKeyDesc(this.jsonObject);
// }
//
// /**
// * 判断key是否存在
// *
// * @param propertyName key名称
// * @return boolean
// * @since 2.2.5
// */
// public boolean containsKey(String propertyName) {
// return containsKey(this.jsonObject, propertyName);
// }
//
// /**
// * 返回这个对象的一个成员集合。这个集合是有顺序的,而这个顺序是在 元素被添加。
// *
// * @return Set
// * @since 2.3.0
// */
// public Set> entrySet() {
// return this.jsonObject.entrySet();
// }
//
// /**
// * 根据key获取json对象中的值是为空
// *
// * @param key 键
// * @return boolean
// * @since 2.3.3
// */
// public boolean isEmptyValue(String key) {
// return isEmptyValue(this.jsonObject, key);
// }
//
// /**
// * 根据key获取json对象中的值不为空空
// *
// * @param key 键
// * @return boolean
// * @since 2.3.3
// */
// public boolean isNotEmptyValue(String key) {
// return isNotEmptyValue(this.jsonObject, key);
// }
//
// /**
// * 获取json长度
// *
// * @return int
// * @since 2.4.1
// */
// public int size() {
// return this.jsonObject.size();
// }
}