From 3842cab13578f00d5aba270eaeca3f9edbba73f6 Mon Sep 17 00:00:00 2001 From: Milkin Date: Tue, 2 Oct 2018 09:42:57 -0400 Subject: [PATCH] When serializing JSONObject {"key": -0.0} to string and then back again will result in a "-0" string. Based on ECMA-404 -0 is a valid number. --- JSONObject.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/JSONObject.java b/JSONObject.java index 8deb6bae5..67930f106 100644 --- a/JSONObject.java +++ b/JSONObject.java @@ -2186,6 +2186,13 @@ public static Object stringToValue(String string) { } } else { Long myLong = Long.valueOf(string); + + // If the value is equal to 0 then the prefix of negative should be removed. + if (myLong.equals(0) && string.equals("-0")) + { + return Integer.valueOf(myLong.intValue()); + } + if (string.equals(myLong.toString())) { if (myLong.longValue() == myLong.intValue()) { return Integer.valueOf(myLong.intValue());