Refactor PersonWriter
This commit is contained in:
parent
e17dd32c49
commit
ffd8963fd5
@ -1,5 +1,7 @@
|
|||||||
package com.baeldung.json;
|
package com.baeldung.json;
|
||||||
|
|
||||||
|
import javax.json.*;
|
||||||
|
import javax.json.stream.JsonGenerator;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
import java.io.Writer;
|
import java.io.Writer;
|
||||||
@ -7,50 +9,42 @@ import java.text.SimpleDateFormat;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.json.Json;
|
|
||||||
import javax.json.JsonArrayBuilder;
|
|
||||||
import javax.json.JsonObject;
|
|
||||||
import javax.json.JsonObjectBuilder;
|
|
||||||
import javax.json.JsonWriterFactory;
|
|
||||||
import javax.json.stream.JsonGenerator;
|
|
||||||
|
|
||||||
public class PersonWriter {
|
public class PersonWriter {
|
||||||
private Person person;
|
private Person person;
|
||||||
|
|
||||||
private SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
|
private SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
|
||||||
|
|
||||||
public PersonWriter(Person person) {
|
public PersonWriter(Person person) {
|
||||||
this.person = person;
|
this.person = person;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String write() throws IOException {
|
public String write() throws IOException {
|
||||||
JsonObjectBuilder objectBuilder = Json.createObjectBuilder()
|
JsonObjectBuilder objectBuilder = Json
|
||||||
.add("firstName", person.getFirstName())
|
.createObjectBuilder()
|
||||||
.add("lastName", person.getLastName())
|
.add("firstName", person.getFirstName())
|
||||||
.add("birthdate", dateFormat.format(person.getBirthdate()));
|
.add("lastName", person.getLastName())
|
||||||
|
.add("birthdate", dateFormat.format(person.getBirthdate()));
|
||||||
JsonArrayBuilder arrayBuilder = Json.createArrayBuilder();
|
|
||||||
|
final JsonArrayBuilder arrayBuilder = Json.createArrayBuilder();
|
||||||
for(String email : person.getEmails()) {
|
|
||||||
arrayBuilder.add(email);
|
person.getEmails().forEach(arrayBuilder::add);
|
||||||
}
|
|
||||||
|
|
||||||
objectBuilder.add("emails", arrayBuilder);
|
objectBuilder.add("emails", arrayBuilder);
|
||||||
|
|
||||||
JsonObject jsonObject = objectBuilder.build();
|
JsonObject jsonObject = objectBuilder.build();
|
||||||
|
|
||||||
JsonWriterFactory writerFactory = createWriterFactory();
|
JsonWriterFactory writerFactory = createWriterFactory();
|
||||||
|
|
||||||
String jsonString = writeToString(jsonObject, writerFactory);
|
return writeToString(jsonObject, writerFactory);
|
||||||
|
|
||||||
return jsonString;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private String writeToString(JsonObject jsonObject, JsonWriterFactory writerFactory) throws IOException {
|
private String writeToString(JsonObject jsonObject, JsonWriterFactory writerFactory) throws IOException {
|
||||||
String jsonString;
|
String jsonString;
|
||||||
try(Writer writer = new StringWriter()) {
|
try (Writer writer = new StringWriter()) {
|
||||||
writerFactory.createWriter(writer).write(jsonObject);
|
writerFactory
|
||||||
|
.createWriter(writer)
|
||||||
|
.write(jsonObject);
|
||||||
jsonString = writer.toString();
|
jsonString = writer.toString();
|
||||||
}
|
}
|
||||||
return jsonString;
|
return jsonString;
|
||||||
@ -60,8 +54,7 @@ public class PersonWriter {
|
|||||||
Map<String, Boolean> config = new HashMap<>();
|
Map<String, Boolean> config = new HashMap<>();
|
||||||
|
|
||||||
config.put(JsonGenerator.PRETTY_PRINTING, true);
|
config.put(JsonGenerator.PRETTY_PRINTING, true);
|
||||||
|
|
||||||
JsonWriterFactory writerFactory = Json.createWriterFactory(config);
|
return Json.createWriterFactory(config);
|
||||||
return writerFactory;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user