一尘不染

在Play中自定义JSON序列化

json

renderJSON(Object)用来将一些对象作为JSON值返回,并且除了一个字段外,它都工作正常。有没有一种简单的方法可以在一个字段中添加内容而无需手动创建整个json模板?


阅读 288

收藏
2020-07-27

共1个答案

一尘不染

Play使用GSON构建JSON字符串。如果您的字段是一种特定的对象类型,则可以通过为该类型提供自定义的序列化来轻松完成此操作。在这里查看文档

http://sites.google.com/site/gson/gson-user-guide#TOC-Custom-Serialization-
and-Deserializ

但是,例如,如果它是一个Integer类,而您想以一种方式工作,而又以另一种方式工作,则您可能会遇到一些困难。

GsonBuilder gson = new GsonBuilder();
gson.registerTypeAdapter(SpecificClass.class, new MySerializer());

private class MySerializer implements JsonSerializer<DateTime> {
  public JsonElement serialize(SpecificClass src, Type typeOfSrc, JsonSerializationContext context) {
    String res = "special format of specificClass"
    return new JsonPrimitive(res);
  }
}
2020-07-27