public static OurClass parse(JSONParser json) { json.enterList(); String message = json.nextString(); int number = json.nextInt(); json.exit(); return new OurClass(message, number); }
public void testArray() { String orig = "[0,1,2,3,\"hello\"]"; json(orig); json.enterList(); for (int i = 0; i < 4; i++) { assertTrue(json.hasNext()); assertEquals(i, json.nextInt()); } assertTrue(json.hasNext()); assertStringsMatch("hello", json.nextString()); assertFalse(json.hasNext()); json.exit(); }
public void testMap() { String orig = "{\"u\":14,\"m\":false,\"w\":null,\"k\":true}"; json(orig); json.enterMap(); Map m = new HashMap(); for (int i = 0; i < 4; i++) { String key = json.nextKey(); Object value = json.next(); assertFalse(m.containsKey(key)); m.put(key, value); } json.exit(); assertStringsMatch(m.get("u"), "14.0"); assertStringsMatch(m.get("m"), "false"); assertTrue(m.get("w") == null); assertStringsMatch(m.get("k"), "true"); }
public void testPeek2() { String s = "{'a':5,'b':null,'c':17}"; s = JSONTools.swapQuotes(s); JSONParser p = new JSONParser(s); int sum = 0; p.enterMap(); while (p.hasNext()) { String key = p.nextKey(); if (!p.nextIfNull()) { if (!key.equals("a")) { assertEquals("c", key); } int val = p.nextInt(); sum += val; } } p.exit(); assertEquals(5 + 17, sum); }
public void testPeek() { int[] a = {5, 12, -1, 17, 3, -1, 42, -1}; String s = "[5,12,null,17,3,null,42,null]"; JSONParser p = new JSONParser(s); p.enterList(); for (int i = 0; i < a.length; i++) { assertTrue(p.hasNext()); Object q = p.peekNext(); assertTrue((a[i] < 0) == (q == null)); if (q == null) { assertTrue(p.nextIfNull()); } else { assertFalse(p.nextIfNull()); assertEquals(a[i], p.nextInt()); } } assertFalse(p.hasNext()); p.exit(); }