private Object getValue(ValueNode value) { if (value.isNull()) { return null; } if (value.numberType() != null) { switch (value.numberType()) { case LONG: return value.longValue(); case DOUBLE: return value.doubleValue(); case FLOAT: return value.floatValue(); case INT: return value.intValue(); case BIG_DECIMAL: return value.decimalValue(); case BIG_INTEGER: return value.bigIntegerValue(); default: return value.asText(); } } if (value.isBoolean()) { return value.asBoolean(); } return value.asText(); }
return ((ValueNode) object).asBoolean();
public void flattenJsonIntoMap(String currentPath, JsonNode jsonNode, Map<String, Object> map) { if (jsonNode.isObject()) { ObjectNode objectNode = (ObjectNode) jsonNode; Iterator<Map.Entry<String, JsonNode>> iter = objectNode.fields(); String pathPrefix = currentPath.isEmpty() ? "" : currentPath + "."; while (iter.hasNext()) { Map.Entry<String, JsonNode> entry = iter.next(); flattenJsonIntoMap(pathPrefix + entry.getKey(), entry.getValue(), map); } } else if (jsonNode.isArray()) { ArrayNode arrayNode = (ArrayNode) jsonNode; for (int i = 0; i < arrayNode.size(); i++) { flattenJsonIntoMap(currentPath + "[" + i + "]", arrayNode.get(i), map); } } else if (jsonNode.isValueNode()) { ValueNode valueNode = (ValueNode) jsonNode; Object value = null; if (valueNode.isNumber()) { value = valueNode.numberValue(); } else if (valueNode.isBoolean()) { value = valueNode.asBoolean(); } else if (valueNode.isTextual()){ value = valueNode.asText(); } map.put(currentPath, value); } } }
return new JsonPrimitive(vn.numberValue()); case BOOLEAN: return new JsonPrimitive(vn.asBoolean()); case STRING: return new JsonPrimitive(vn.textValue());
if (vNode.asToken().isScalarValue()) { if (vNode.getNodeType() == JsonNodeType.BOOLEAN) { cda = new CustomAttribute<Boolean>(currentName, vNode.asBoolean(), Boolean.class); } else if (vNode.getNodeType() == JsonNodeType.STRING) { cda = new CustomAttribute<String>(currentName, vNode.asText(), String.class);