/** * Create a new {@link JsonFileItemWriter} instance. * @param resource to write json data to * @param jsonObjectMarshaller used to marshal object into json representation */ public JsonFileItemWriter(Resource resource, JsonObjectMarshaller<T> jsonObjectMarshaller) { Assert.notNull(resource, "resource must not be null"); Assert.notNull(jsonObjectMarshaller, "json object marshaller must not be null"); setResource(resource); setJsonObjectMarshaller(jsonObjectMarshaller); setHeaderCallback(writer -> writer.write(JSON_ARRAY_START)); setFooterCallback(writer -> writer.write(this.lineSeparator + JSON_ARRAY_STOP + this.lineSeparator)); setExecutionContextName(ClassUtils.getShortName(JsonFileItemWriter.class)); }
@Test public void testJsonWritingWithEnclosingObject() throws Exception { // given this.writer.setHeaderCallback(writer -> writer.write("{\"trades\":[")); this.writer.setFooterCallback(writer -> writer.write(JsonFileItemWriter.DEFAULT_LINE_SEPARATOR + "]}")); // when this.writer.open(this.executionContext); this.writer.write(this.items); this.writer.close(); // then assertFileEquals( new File(EXPECTED_FILE_DIRECTORY + "expected-trades-with-wrapper-object.json"), this.resource.getFile()); }
jsonFileItemWriter.setFooterCallback(this.footerCallback);
/** * Create a new {@link JsonFileItemWriter} instance. * @param resource to write json data to * @param jsonObjectMarshaller used to marshal object into json representation */ public JsonFileItemWriter(Resource resource, JsonObjectMarshaller<T> jsonObjectMarshaller) { Assert.notNull(resource, "resource must not be null"); Assert.notNull(jsonObjectMarshaller, "json object marshaller must not be null"); setResource(resource); setJsonObjectMarshaller(jsonObjectMarshaller); setHeaderCallback(writer -> writer.write(JSON_ARRAY_START)); setFooterCallback(writer -> writer.write(this.lineSeparator + JSON_ARRAY_STOP + this.lineSeparator)); setExecutionContextName(ClassUtils.getShortName(JsonFileItemWriter.class)); }
jsonFileItemWriter.setFooterCallback(this.footerCallback);