From f2aa9f815362c678600fa7f2e09a7a4077b337ca Mon Sep 17 00:00:00 2001 From: Alanscut Date: Sun, 12 Jan 2020 23:04:39 +0800 Subject: [PATCH] add BigInteger --- .../spi/json/JacksonJsonNodeJsonProvider.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/json-path/src/main/java/com/jayway/jsonpath/spi/json/JacksonJsonNodeJsonProvider.java b/json-path/src/main/java/com/jayway/jsonpath/spi/json/JacksonJsonNodeJsonProvider.java index 82ab48f5..b771133e 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/spi/json/JacksonJsonNodeJsonProvider.java +++ b/json-path/src/main/java/com/jayway/jsonpath/spi/json/JacksonJsonNodeJsonProvider.java @@ -13,6 +13,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.math.BigDecimal; +import java.math.BigInteger; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; @@ -29,14 +30,14 @@ public class JacksonJsonNodeJsonProvider extends AbstractJsonProvider { } /** - * Initialize the JacksonTreeJsonProvider with the default ObjectMapper and ObjectReader + * Initialize the JacksonJsonNodeJsonProvider with the default ObjectMapper and ObjectReader */ public JacksonJsonNodeJsonProvider() { this(defaultObjectMapper); } /** - * Initialize the JacksonTreeJsonProvider with a custom ObjectMapper and ObjectReader. + * Initialize the JacksonJsonNodeJsonProvider with a custom ObjectMapper and ObjectReader. * * @param objectMapper the ObjectMapper to use */ @@ -174,9 +175,9 @@ public class JacksonJsonNodeJsonProvider extends AbstractJsonProvider { } public void removeProperty(Object obj, Object key) { - if (isMap(obj)) + if (isMap(obj)) { toJsonObject(obj).remove(key.toString()); - else { + } else { ArrayNode array = toJsonArray(obj); int index = key instanceof Integer ? (Integer) key : Integer.parseInt(key.toString()); array.remove(index); @@ -257,7 +258,9 @@ public class JacksonJsonNodeJsonProvider extends AbstractJsonProvider { objectNode.put(key.toString(), (Long) value); } else if (value instanceof Short) { objectNode.put(key.toString(), (Short) value); - } else if (value instanceof Double) { + } else if (value instanceof BigInteger) { + objectNode.put(key.toString(), (BigInteger) value); + } else if (value instanceof Double) { objectNode.put(key.toString(), (Double) value); } else if (value instanceof Float) { objectNode.put(key.toString(), (Float) value);