![JAR search and dependency download from the Maven repository](/logo.png)
com.mokung.pomegranate.jackson.JsonObject Maven / Gradle / Ivy
package com.mokung.pomegranate.jackson;
import java.io.Serializable;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.*;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
/**
* json Object 类型
*
* @author mokung
*/
public class JsonObject extends AbstractJsonContainer
implements Map, Cloneable, Serializable {
public JsonObject() {
super();
}
public JsonObject(ObjectMapper objectMapper) {
super(objectMapper);
}
public JsonObject(ObjectNode hub) {
super(null, hub);
}
public JsonObject(ObjectMapper objectMapper, ObjectNode hub) {
super(objectMapper, hub);
}
/**
* put value 泛型支持
*
* @param key
* key
* @param value
* value
* @param
* value类型
* @return 添加成功值
*/
public T set(String key, T value) {
// null
if (value == null) {
container.putNull(key);
return null;
}
// 常用类型
if (value instanceof BigDecimal) {
container.put(key, (BigDecimal)value);
return value;
}
if (value instanceof BigInteger) {
container.put(key, (BigInteger)value);
return value;
}
if (value instanceof Boolean) {
container.put(key, (Boolean)value);
return value;
}
if (value instanceof Byte) {
container.put(key, (Byte)value);
return value;
}
if (value instanceof Double) {
container.put(key, (Double)value);
return value;
}
if (value instanceof Float) {
container.put(key, (Float)value);
return value;
}
if (value instanceof Integer) {
container.put(key, (Integer)value);
return value;
}
if (value instanceof Long) {
container.put(key, (Long)value);
return value;
}
if (value instanceof Short) {
container.put(key, (Short)value);
return value;
}
if (value instanceof String) {
container.put(key, (String)value);
return value;
}
// 自定义类型
if (value instanceof AbstractJsonContainer) {
AbstractJsonContainer, ?> abstractJsonContainer = (AbstractJsonContainer, ?>)value;
container.set(key, abstractJsonContainer.getContainer());
return value;
}
// JsonNode 类型
if (value instanceof JsonNode) {
container.set(key, (JsonNode)value);
return value;
}
// 默认添加类型
container.putPOJO(key, value);
return value;
}
@Override
public Object put(String key, Object value) {
return set(key, value);
}
@Override
public Object get(Object key) {
return getInterior((String)key);
}
@Override
public int size() {
return container.size();
}
@Override
public boolean isEmpty() {
return container.isEmpty(null);
}
@Override
public boolean containsKey(Object key) {
return container.has((String)key);
}
@Override
public boolean containsValue(Object value) {
Set keys = keySet();
for (String key : keys) {
Object hubValue = get(key);
if (Objects.equals(hubValue, value)) {
return true;
}
}
return false;
}
@Override
public Object remove(Object key) {
return container.remove((String)key);
}
@Override
public void putAll(Map extends String, ?> map) {
if (map == null || map.size() <= 0) {
return;
}
for (Map.Entry extends String, ?> entry : map.entrySet()) {
put(entry.getKey(), entry.getValue());
}
}
public void putAllMap(Map, ?> map) {
if (map == null || map.size() <= 0) {
return;
}
for (Map.Entry, ?> entry : map.entrySet()) {
put(entry.getKey().toString(), entry.getValue());
}
}
@Override
public void clear() {
container.removeAll();
}
@Override
public Set keySet() {
Iterator fieldNames = container.fieldNames();
Set keySet = new HashSet<>(container.size());
while (fieldNames.hasNext()) {
keySet.add(fieldNames.next());
}
return keySet;
}
@Override
public Collection
© 2015 - 2025 Weber Informatics LLC | Privacy Policy