import spray.json.*;
class Person {
public String name;
public int age;
}
String jsonString = "{\"name\":\"John\", \"age\":30}";
Person person = JsonParser.apply(jsonString).convertTo(Person.class);
String jsonOutput = person.toJson().toString();
import spray.json.*;
class PersonJsonFormat implements RootJsonFormat<Person> {
public Person read(JsonValue json) {
JsonObject jsonObject = (JsonObject) json;
String name = jsonObject.get("name").asString();
int age = jsonObject.get("age").asInt();
Person person = new Person();
person.setName(name);
person.setAge(age);
return person;
}
public JsonValue write(Person person) {
JsonObjectBuilder builder = Json.createObjectBuilder();
builder.add("name", person.getName());
builder.add("age", person.getAge());
return builder.build();
}
}
JsonReaderSettings settings = new JsonReaderSettings();
settings.getCustomFormats().put(Person.class, new PersonJsonFormat());
Person person = Json.createReader(new StringReader(jsonString), settings).readObject(Person.class);
StringWriter writer = new StringWriter();
Json.createWriter(writer).writeObject(person, Person.class);
String jsonOutput = writer.toString();
import spray.json.*;
String invalidJsonString = "{\"name\":\"John\", \"age\":}";
try {
Person person = JsonParser.apply(invalidJsonString).convertTo(Person.class);
} catch (DeserializationException e) {
}