From 73a9ed952be45de9257c1f659915c1069b53a7e0 Mon Sep 17 00:00:00 2001 From: Mo Helmy <135069400+BenHelmyBen@users.noreply.github.com> Date: Mon, 12 Feb 2024 19:44:31 +0200 Subject: [PATCH] This PR is related to the article BAEL-6102 (#15855) * This commit is related to BAEL-6102 This commit aims to add a main class for the article "Preventing Gson from Expressing Integers as Floats". * This commit is related to BAEL-6102 This commit aims to add a test class "PreventExpressingIntAsFloatUnitTest.java" for the article "Preventing Gson from Expressing Integers as Floats". --- .../preventexpressingintasfloat/Main.java | 22 ++++++++++++++ .../PreventExpressingIntAsFloatUnitTest.java | 30 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 json-modules/json-conversion/src/main/java/com/baeldung/preventexpressingintasfloat/Main.java create mode 100644 json-modules/json-conversion/src/test/java/com/baeldung/preventexpressingintasfloat/PreventExpressingIntAsFloatUnitTest.java diff --git a/json-modules/json-conversion/src/main/java/com/baeldung/preventexpressingintasfloat/Main.java b/json-modules/json-conversion/src/main/java/com/baeldung/preventexpressingintasfloat/Main.java new file mode 100644 index 0000000000..c0f14fa73d --- /dev/null +++ b/json-modules/json-conversion/src/main/java/com/baeldung/preventexpressingintasfloat/Main.java @@ -0,0 +1,22 @@ +package com.baeldung.preventexpressingintasfloat; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.Hashtable; + +public class Main { + public static String draft = "[{\"id\":4077395,\"field_id\":242566,\"body\":\"\"}, " + + "{\"id\":4077398,\"field_id\":242569,\"body\":[[273019,0],[273020,1],[273021,0]]}, " + + "{\"id\":4077399,\"field_id\":242570,\"body\":[[273022,0],[273023,1],[273024,0]]}]"; + + public static void main(String[] args) { + ArrayList> responses; + Type ResponseList = new TypeToken>>() { + }.getType(); + responses = new Gson().fromJson(draft, ResponseList); + System.out.println(responses); + } +} \ No newline at end of file diff --git a/json-modules/json-conversion/src/test/java/com/baeldung/preventexpressingintasfloat/PreventExpressingIntAsFloatUnitTest.java b/json-modules/json-conversion/src/test/java/com/baeldung/preventexpressingintasfloat/PreventExpressingIntAsFloatUnitTest.java new file mode 100644 index 0000000000..6ada093ab3 --- /dev/null +++ b/json-modules/json-conversion/src/test/java/com/baeldung/preventexpressingintasfloat/PreventExpressingIntAsFloatUnitTest.java @@ -0,0 +1,30 @@ +package com.baeldung.preventexpressingintasfloat; + +import com.google.gson.*; +import com.google.gson.reflect.TypeToken; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.Hashtable; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class PreventExpressingIntAsFloatUnitTest { + + public String jsonString = "[{\"id\":4077395,\"field_id\":242566,\"body\":\"\"}, " + + "{\"id\":4077398,\"field_id\":242569,\"body\":[[273019,0],[273020,1],[273021,0]]}, " + + "{\"id\":4077399,\"field_id\":242570,\"body\":[[273022,0],[273023,1],[273024,0]]}]"; + + public String expectedOutput = "[{body=, field_id=242566, id=4077395}, " + + "{body=[[273019, 0], [273020, 1], [273021, 0]], field_id=242569, id=4077398}, " + + "{body=[[273022, 0], [273023, 1], [273024, 0]], field_id=242570, id=4077399}]"; + + @Test + public void givenJsonString_whenUsingsetObjectToNumberStrategyMethod_thenValidateOutput() { + Gson gson = new GsonBuilder().setObjectToNumberStrategy(ToNumberPolicy.LONG_OR_DOUBLE).create(); + ArrayList> responses = gson.fromJson(jsonString, new TypeToken>>() { + }.getType()); + + assertEquals(expectedOutput, responses.toString()); + } +}