diff --git a/components/serialization/json/src/main/java/com/microsoft/kiota/serialization/JsonParseNode.java b/components/serialization/json/src/main/java/com/microsoft/kiota/serialization/JsonParseNode.java index 771650ba1..8ee6e59a5 100644 --- a/components/serialization/json/src/main/java/com/microsoft/kiota/serialization/JsonParseNode.java +++ b/components/serialization/json/src/main/java/com/microsoft/kiota/serialization/JsonParseNode.java @@ -146,6 +146,8 @@ public JsonParseNode(@Nonnull final JsonElement node) { return (T) itemNode.getIntegerValue(); } else if (targetClass == Float.class) { return (T) itemNode.getFloatValue(); + } else if (targetClass == Double.class) { + return (T) itemNode.getDoubleValue(); } else if (targetClass == Long.class) { return (T) itemNode.getLongValue(); } else if (targetClass == UUID.class) { diff --git a/components/serialization/json/src/test/java/com/microsoft/kiota/serialization/JsonParseNodeTests.java b/components/serialization/json/src/test/java/com/microsoft/kiota/serialization/JsonParseNodeTests.java index 96fed600f..ec31bd0e1 100644 --- a/components/serialization/json/src/test/java/com/microsoft/kiota/serialization/JsonParseNodeTests.java +++ b/components/serialization/json/src/test/java/com/microsoft/kiota/serialization/JsonParseNodeTests.java @@ -172,4 +172,19 @@ void GetEntityWithUntypedNodesFromJson() throws UnsupportedEncodingException { } } } + + @Test + void getCollectionOfPrimitiveDoubleValues() throws UnsupportedEncodingException { + final var initialString = "{\"values\":[1.1,2.2,3.3]}"; + final var rawResponse = new ByteArrayInputStream(initialString.getBytes("UTF-8")); + final var parseNode = _parseNodeFactory.getParseNode(contentType, rawResponse); + final var valuesNode = parseNode.getChildNode("values"); + assertNotNull(valuesNode); + final var doubles = valuesNode.getCollectionOfPrimitiveValues(Double.class); + assertNotNull(doubles); + assertEquals(3, doubles.size()); + assertEquals(1.1, doubles.get(0), 0.000001); + assertEquals(2.2, doubles.get(1), 0.000001); + assertEquals(3.3, doubles.get(2), 0.000001); + } }