@Override public Document read(Reader jsonReader) throws IOException { return parse(factory.createParser(jsonReader)); }
@Override public Array readArray(InputStream jsonStream) throws IOException { return parseArray(factory.createParser(jsonStream), false); }
private Document parse(JsonParser parser) throws IOException { try { return parseDocument(parser, false); } finally { parser.close(); } }
break; case START_OBJECT: doc.setDocument(fieldName, parseDocument(parser, true)); break; case START_ARRAY: doc.setArray(fieldName, parseArray(parser, true)); break; case VALUE_STRING:
@Test @FixFor("DBZ-657") public void canParseDocumentWithUnescapedControlCharacter() throws Exception { Document document = JacksonReader.DEFAULT_INSTANCE.read( // { " a CR b " : 1 2 3 } new String(new byte[] {123, 34, 97, 13, 98, 34, 58, 49, 50, 51, 125}) ); assertThat((Object) document).isEqualTo(Document.create("a\rb", 123)); } }
@Test public void shouldWriteDocumentWithSingleField() throws Exception { array.add("value1"); after = reader.readArray(writer.write(array)); assertThat(after.get(0)).isEqualTo("value1"); assertThat(after.size()).isEqualTo(1); }
switch (token) { case START_OBJECT: array.add(parseDocument(parser, true)); break; case START_ARRAY: array.add(parseArray(parser, true)); break; case VALUE_STRING:
@Test public void shouldWriteDocumentWithSingleField() throws Exception { doc.set("field", "value"); after = reader.read(writer.write(doc)); assertThat(after.getString("field")).isEqualTo("value"); assertThat(after.size()).isEqualTo(1); }
@Test public void shouldWriteDocumentWithTwoFields() throws Exception { array.add("value1"); array.add("value2"); after = reader.readArray(writer.write(array)); assertThat(after.get(0)).isEqualTo("value1"); assertThat(after.get(1)).isEqualTo("value2"); assertThat(after.size()).isEqualTo(2); }
break; case START_OBJECT: doc.setDocument(fieldName, parseDocument(parser, true)); break; case START_ARRAY: doc.setArray(fieldName, parseArray(parser, true)); break; case VALUE_STRING:
@Override public Document read(String json) throws IOException { return parse(factory.createParser(json)); }
@Override public Array readArray(Reader jsonReader) throws IOException { return parseArray(factory.createParser(jsonReader), false); }
@Test public void shouldWriteDocumentWithTwoFields() throws Exception { doc.set("field1", "value"); doc.set("field2", 22); after = reader.read(writer.write(doc)); assertThat(after.getString("field1")).isEqualTo("value"); assertThat(after.getInteger("field2")).isEqualTo(22); assertThat(after.size()).isEqualTo(2); }
@Test public void shouldWriteDocumentWithNestedDocument() throws Exception { array.add("value1"); array.add("value2"); array.add(Document.create("a","A","b","B")); after = reader.readArray(writer.write(array)); assertThat(after.get(0)).isEqualTo("value1"); assertThat(after.get(1)).isEqualTo("value2"); assertThat(after.size()).isEqualTo(3); Document nested = after.get(2).asDocument(); assertThat(nested.getString("a")).isEqualTo("A"); assertThat(nested.getString("b")).isEqualTo("B"); assertThat(nested.size()).isEqualTo(2); }
private Document parse(JsonParser parser) throws IOException { try { return parseDocument(parser, false); } finally { parser.close(); } }
switch (token) { case START_OBJECT: array.add(parseDocument(parser, true)); break; case START_ARRAY: array.add(parseArray(parser, true)); break; case VALUE_STRING:
@Override public Document read(InputStream jsonStream) throws IOException { return parse(factory.createParser(jsonStream)); }
@Override public Array readArray(URL jsonUrl) throws IOException { return parseArray(factory.createParser(jsonUrl), false); }
@Test public void shouldWriteDocumentWithNestedDocument() throws Exception { doc.set("field1", "value"); doc.set("field2", 22); doc.set("field3", Document.create("a","A","b","B")); after = reader.read(writer.write(doc)); Testing.print(after); assertThat(after.getString("field1")).isEqualTo("value"); assertThat(after.getInteger("field2")).isEqualTo(22); assertThat(after.size()).isEqualTo(3); Document nested = after.getDocument("field3"); assertThat(nested.getString("a")).isEqualTo("A"); assertThat(nested.getString("b")).isEqualTo("B"); assertThat(nested.size()).isEqualTo(2); } @Test
@Test public void shouldWriteDocumentWithDeeplyNestedDocument() throws Exception { array.add("value1"); array.add("value2"); array.add(Document.create("a","A","b","B","c",Document.create("x","X"))); after = reader.readArray(writer.write(array)); assertThat(after.get(0)).isEqualTo("value1"); assertThat(after.get(1)).isEqualTo("value2"); assertThat(after.size()).isEqualTo(3); Document nested = after.get(2).asDocument(); assertThat(nested.getString("a")).isEqualTo("A"); assertThat(nested.getString("b")).isEqualTo("B"); assertThat(nested.size()).isEqualTo(3); Document deepNested = nested.getDocument("c"); assertThat(deepNested.getString("x")).isEqualTo("X"); assertThat(deepNested.size()).isEqualTo(1); }