diff --git a/src/zutil/parser/json/JSONParser.java b/src/zutil/parser/json/JSONParser.java index 9249ae9..bc3195f 100755 --- a/src/zutil/parser/json/JSONParser.java +++ b/src/zutil/parser/json/JSONParser.java @@ -103,7 +103,7 @@ public class JSONParser extends Parser { case ']': case '}': case (char)-1: - end.i = 1; + end.i = END_WITH_NULL; return null; // Parse Map case '{': @@ -114,7 +114,7 @@ public class JSONParser extends Parser { if(end.i != END_WITH_NULL) root.set( key.toString(), node ); } - end.i = 0; + end.i = CONTINUE; break; // Parse List case '[': @@ -124,7 +124,7 @@ public class JSONParser extends Parser { if(end.i != END_WITH_NULL) root.add( node ); } - end.i = 0; + end.i = CONTINUE; break; // Parse String // TODO: Support double backslash escaping diff --git a/test/zutil/test/JSONParserTest.java b/test/zutil/test/JSONParserTest.java index 9290d6b..68a2d09 100755 --- a/test/zutil/test/JSONParserTest.java +++ b/test/zutil/test/JSONParserTest.java @@ -138,6 +138,15 @@ public class JSONParserTest { assertEquals( "3", data.getString("3")); } + @Test + public void emptyStringInMap(){ + DataNode data = JSONParser.read("{1:{2:\"\"}}"); + assertEquals(DataType.Map, data.getType()); + assertEquals(1, data.size()); + assertEquals( "", data.get("1").getString("2")); + } + + @Test public void complexMap() { String json = "{" +