@@ -41,7 +41,12 @@ public static JSONObject reactToJSON(ReadableMap value) throws JSONException {
4141 properties .put (key , value .getBoolean (key ));
4242 break ;
4343 case Number :
44- properties .put (key , value .getDouble (key ));
44+ double numberValue = value .getDouble (key );
45+ if (!Double .isNaN (numberValue ) && !Double .isInfinite (numberValue )) {
46+ properties .put (key , numberValue );
47+ } else {
48+ properties .put (key , String .valueOf (numberValue ));
49+ }
4550 break ;
4651 case String :
4752 properties .put (key , value .getString (key ));
@@ -77,7 +82,10 @@ public static JSONArray reactToJSON(ReadableArray value) throws JSONException {
7782 properties .put (value .getBoolean (i ));
7883 break ;
7984 case Number :
80- properties .put (value .getDouble (i ));
85+ double numberValue = value .getDouble (i );
86+ if (!Double .isNaN (numberValue ) && !Double .isInfinite (numberValue )) {
87+ properties .put (numberValue );
88+ }
8189 break ;
8290 case String :
8391 properties .put (value .getString (i ));
@@ -133,7 +141,12 @@ public static Map<String, Object> toMap(ReadableMap value) {
133141 mapProperties .put (key , value .getBoolean (key ));
134142 break ;
135143 case Number :
136- mapProperties .put (key , value .getDouble (key ));
144+ double numberValue = value .getDouble (key );
145+ if (!Double .isNaN (numberValue ) && !Double .isInfinite (numberValue )) {
146+ mapProperties .put (key , value .getDouble (key ));
147+ } else {
148+ mapProperties .put (key , String .valueOf (numberValue ));
149+ }
137150 break ;
138151 case String :
139152 mapProperties .put (key , value .getString (key ));
0 commit comments