// Maven
<dependency>
<groupId>io.spray</groupId>
<artifactId>spray-json_2.12</artifactId>
<version>1.3.6</version>
</dependency>
// Gradle
compile 'io.spray:spray-json_2.12:1.3.6'
public class Person {
private String name;
private int age;
}
import spray.json.*;
public class PersonJsonFormat implements RootJsonFormat<Person> {
public Person read(JsonValue json) {
JsonObject jsonObject = json.asJsonObject();
String name = jsonObject.get("name").asString();
int age = jsonObject.get("age").asInt();
return new Person(name, age);
}
public void write(Person person, JsonWriter writer) {
JsonObject jsonObject = new JsonObject();
jsonObject.add("name", person.getName());
jsonObject.add("age", person.getAge());
writer.writeObject(jsonObject);
}
}
import spray.json.*;
public class Main {
public static void main(String[] args) {
Person person = new Person("Alice", 25);
String json = person.toJson().toString();
System.out.println("Serialized JSON: " + json);
Person deserializedPerson = JsonParser.apply(json).convertTo(Person.class);
System.out.println("Deserialized Person: " + deserializedPerson);
}
}
Serialized JSON: {"name":"Alice","age":25}
Deserialized Person: Person{name='Alice', age=25}