scala
libraryDependencies += "com.typesafe.play" %% "play-json" % "x.x.x"
public class User {
private int id;
private String name;
}
import play.libs.Json;
User user = new User(1, "John");
JsonNode userJson = Json.toJson(user);
String jsonString = Json.stringify(userJson);
User user = Json.fromJson(Json.parse(jsonString), User.class);
public class User {
// ...
public static class UserJsonSerializer implements JsonSerializer<User> {
@Override
public JsonNode serialize(User user, JsonSerializationContext ctx) {
ObjectNode json = Json.newObject();
json.put("user_id", user.getId());
json.put("user_name", user.getName());
return json;
}
}
public static class UserJsonDeserializer implements JsonDeserializer<User> {
@Override
public User deserialize(JsonNode json, JsonDeserializationContext ctx) {
int id = json.get("user_id").asInt();
String name = json.get("user_name").asText();
return new User(id, name);
}
}
}
Gson gson = new GsonBuilder()
.registerTypeAdapter(User.class, new UserJsonSerializer())
.registerTypeAdapter(User.class, new UserJsonDeserializer())
.create();