XD-3651 Fix handling of numeric, boolean and null values

This commit is contained in:
Thomas Risberg
2015-10-28 18:37:02 -04:00
committed by Marius Bogoevici
parent 2e7f9cc729
commit 1b10c8801a
3 changed files with 40 additions and 1 deletions

View File

@@ -45,6 +45,15 @@ public class JsonNodeToTupleConverter implements Converter<JsonNode, Tuple> {
else if (node.isArray()) {
builder.addEntry(name, nodeToList(node));
}
else if (node.isNull()) {
builder.addEntry(name, null);
}
else if (node.isBoolean()) {
builder.addEntry(name, node.booleanValue());
}
else if (node.isNumber()) {
builder.addEntry(name, node.numberValue());
}
else {
builder.addEntry(name, node.asText());
}
@@ -66,6 +75,15 @@ public class JsonNodeToTupleConverter implements Converter<JsonNode, Tuple> {
else if (item.isArray()) {
list.add(nodeToList(item));
}
else if (item.isNull()) {
list.add(null);
}
else if (item.isBoolean()) {
list.add(item.booleanValue());
}
else if (item.isNumber()) {
list.add(item.numberValue());
}
else {
list.add(item.asText());
}

View File

@@ -52,6 +52,15 @@ public class JsonStringToTupleConverter implements Converter<String, Tuple> {
else if (node.isArray()) {
builder.addEntry(name, nodeToList(node));
}
else if (node.isNull()) {
builder.addEntry(name, null);
}
else if (node.isBoolean()) {
builder.addEntry(name, node.booleanValue());
}
else if (node.isNumber()) {
builder.addEntry(name, node.numberValue());
}
else {
builder.addEntry(name, node.asText());
}
@@ -73,6 +82,15 @@ public class JsonStringToTupleConverter implements Converter<String, Tuple> {
else if (item.isArray()) {
list.add(nodeToList(item));
}
else if (item.isNull()) {
list.add(null);
}
else if (item.isBoolean()) {
list.add(item.booleanValue());
}
else if (item.isNumber()) {
list.add(item.numberValue());
}
else {
list.add(item.asText());
}

View File

@@ -49,7 +49,10 @@ public class TupleToJsonStringConverter implements Converter<Tuple, String> {
for (int i = 0; i < source.size(); i++) {
Object value = source.getValues().get(i);
String name = source.getFieldNames().get(i);
if (value != null) {
if (value == null) {
root.putNull(name);
}
else {
if (value instanceof Tuple) {
root.putPOJO(name, toObjectNode((Tuple) value));
}