我正在使用play freamwork编写一个Web应用程序, 我有以下课程:
public class Project{
string name
Image image
}
图像类
public class Image{
String path;
String na,e;
int x;
int y;
}
我想序列化Project,所以我在序列化时获取路径(不是整个图像对象):
即:
{ "name" : proj_name, "image" : "path" }
我认为这可以通过注释完成,但找不到正确的。
答案 0 :(得分:0)
您必须编写自定义反序列化程序,它只将路径属性写入JSON:
class ImagePathJsonSerializer extends JsonSerializer<Image> {
@Override
public void serialize(Image image, JsonGenerator jsonGenerator,
SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
jsonGenerator.writeString(image.path);
}
}
现在,您可以使用@JsonSerialize
注释:
class Project {
private String name;
@JsonSerialize(using = ImagePathJsonSerializer.class)
private Image image;
//getters, setters
}