From e360a534ef74bed668487564340602a1e17e7041 Mon Sep 17 00:00:00 2001 From: Valentyn Kolesnikov Date: Fri, 26 May 2023 13:54:20 +0300 Subject: [PATCH] Improved json serilization for objects --- src/main/java/com/github/underscore/Json.java | 2 +- .../java/com/github/underscore/StringTest.java | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/github/underscore/Json.java b/src/main/java/com/github/underscore/Json.java index 2ee74a8b..39dcec52 100644 --- a/src/main/java/com/github/underscore/Json.java +++ b/src/main/java/com/github/underscore/Json.java @@ -365,7 +365,7 @@ private static void doWriteJson(Object value, JsonStringBuilder builder) { } else if (value instanceof Object[]) { JsonArray.writeJson((Object[]) value, builder); } else { - builder.append(value.toString()); + builder.append('"').append(escape(value.toString())).append('"'); } } diff --git a/src/test/java/com/github/underscore/StringTest.java b/src/test/java/com/github/underscore/StringTest.java index 30e65b0e..59899813 100644 --- a/src/test/java/com/github/underscore/StringTest.java +++ b/src/test/java/com/github/underscore/StringTest.java @@ -537,7 +537,7 @@ public String toString() { } } assertEquals( - "[\n [\n test,\n test\n ]\n]", + "[\n [\n \"test\",\n \"test\"\n ]\n]", U.toJson( new ArrayList() { { @@ -546,6 +546,22 @@ public String toString() { })); } + enum A { + X, + Y, + Z + } + + @Test + void testJsonArrayCollectionEnum() { + Map map = new LinkedHashMap<>(); + List list = new ArrayList<>(); + list.add(A.X); + list.add(A.Y); + map.put("l", list); + assertEquals("{\n \"l\": [\n \"X\",\n \"Y\"\n ]\n}", U.toJson(map)); + } + @Test void escape() { assertNull(Json.JsonValue.escape(null));