
com.ejlchina.data.JacksonMapper Maven / Gradle / Ivy
package com.ejlchina.data;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class JacksonMapper implements Mapper {
private final ObjectNode json;
public JacksonMapper(ObjectNode json) {
this.json = json;
}
@Override
public int size() {
return json.size();
}
@Override
public boolean isEmpty() {
return json.isEmpty();
}
@Override
public Mapper getMapper(String key) {
JsonNode subJson = json.get(key);
if (subJson != null && subJson.isObject()) {
return new JacksonMapper((ObjectNode) subJson);
}
return null;
}
@Override
public Array getArray(String key) {
JsonNode subJson = json.get(key);
if (subJson != null && subJson.isArray()) {
return new JacksonArray((ArrayNode) subJson);
}
return null;
}
@Override
public boolean getBool(String key) {
JsonNode subJson = json.get(key);
if (subJson != null) {
return subJson.asBoolean(false);
}
return false;
}
@Override
public int getInt(String key) {
JsonNode subJson = json.get(key);
if (subJson != null) {
return subJson.asInt(0);
}
return 0;
}
@Override
public long getLong(String key) {
JsonNode subJson = json.get(key);
if (subJson != null) {
return subJson.asLong(0);
}
return 0;
}
@Override
public float getFloat(String key) {
JsonNode subJson = json.get(key);
if (subJson != null && subJson.isNumber()) {
return subJson.floatValue();
}
if (subJson != null) {
return (float) subJson.asDouble(0);
}
return 0;
}
@Override
public double getDouble(String key) {
JsonNode subJson = json.get(key);
if (subJson != null) {
return subJson.asDouble(0);
}
return 0;
}
@Override
public String getString(String key) {
JsonNode subJson = json.get(key);
if (subJson != null) {
return subJson.asText();
}
return null;
}
@Override
public boolean has(String key) {
return json.has(key);
}
@Override
public Set keySet() {
Iterator it = json.fieldNames();
Set set = new HashSet<>();
while (it.hasNext()) {
set.add(it.next());
}
return set;
}
@Override
public String toString() {
return json.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy