### Question:
JsonObjectIterator { public JsonToken nextJsonObject(JsonParser jsonParser) throws JsonParseException, IOException { Preconditions.checkArgument(jsonParser.getCodec() != null); JsonToken token = jsonParser.nextToken(); if (isJsonObject(token)) { return token; } else { return null; } }  JsonToken nextJsonObject(JsonParser jsonParser); T nextJsonObject(JsonParser jsonParser, Class<T> objectClass); boolean isJsonObject(JsonToken jsonToken);  }### Answer:
@Test public void nextObject_ClassObject() throws JsonParseException, IOException { String content = normalizeJson("{name: 'sss', somelist:['1112', 'abc']}"); JsonParser jsonParser = jsonFactory.createParser(content); JsonItem jsonItem = jsonObjectIterator.nextJsonObject(jsonParser, JsonItem.class); assertNotNull(jsonItem); assertEquals("sss", jsonItem.getName()); assertThat(jsonItem.getSomelist(), Matchers.contains("1112", "abc")); assertNull(jsonObjectIterator.nextJsonObject(jsonParser, JsonItem.class)); }
@Test public void nextJsonObject_ArrayOfElements() throws JsonParseException, IOException { String element1 = normalizeJson("{bre: 'sss', arr: ['1112', 'abc']}"); String element2 = normalizeJson("{bre: 'sss', arr: ['1112', 'abc'], dd: 'ssssxx'}"); String content = "[" + element1 +"," + element2 + "]"; JsonParser jsonParser = jsonFactory.createParser(content); JsonToken jsonToken = jsonObjectIterator.nextJsonObject(jsonParser); assertEquals(content, jsonParser.readValueAsTree().toString()); jsonToken = jsonObjectIterator.nextJsonObject(jsonParser); assertNull(jsonToken); }
@Test public void nextJsonObject_SimpleToken() throws JsonParseException, IOException { String element1 = normalizeJson("{bre: 'sss', arr: ['1112', 'abc']}"); String element2 = normalizeJson("{bre: 'sss', arr: ['1112', 'abc'], dd: 'ssssxx'}"); String content = "[" + element1 +", " + element2 + "]"; JsonParser jsonParser = jsonFactory.createParser(content); jsonParser.nextToken(); jsonParser.nextToken(); JsonToken jsonToken = jsonObjectIterator.nextJsonObject(jsonParser); assertNull(jsonToken); }
@Test public void nextJsonObject_SingleElement() throws JsonParseException, IOException { String content = normalizeJson("{bre: 'sss', arr:['1112', 'abc']}"); JsonParser jsonParser = jsonFactory.createParser(content); JsonToken jsonToken = jsonObjectIterator.nextJsonObject(jsonParser); assertNotNull(jsonToken); assertEquals(content, jsonParser.readValueAsTree().toString()); assertNull(jsonObjectIterator.nextJsonObject(jsonParser)); }