我有一个域对象用于 2 种不同的服务,如下所示:
public class PersonDetails {
private String personId;
private String personMaritalStatus;
private String personFirstName;
private String personLastName;
// setters and getters ...
}
并有两种不同的服务。
第一 :
public BaseResponse getClient(@QueryParam("id") @DefaultValue("-1") String id)
{
}
此服务应返回 json 如下:
{ "personId":12,
"personMaritalStatus":"married",
"personFirstname" :"abc",
"personLastname":"pqr" }
二服务:
public BaseResponse getClientName(@QueryParam("id") @DefaultValue("-1") String id)
{
}
此服务应返回 json 如下:
{"personFirstname" :"abc"}
因此,如果我使用@JsonSerialize(using=PersonDetailsSerializer.class)
域对象和序列化程序类将如下所示:
public class PersonDetailsSerializerextends JsonSerializer<PersonDetails>
{
@Override
public void serialize(PersonDetails personDetails,
JsonGenerator jsonGenerator,
SerializerProvider serializerProvider)
throws IOException, JsonProcessingException {
jsonGenerator.writeStartObject();
jsonGenerator.writeStringField("personFirstname", personDetails.getpersonFirstName());
jsonGenerator.writeEndObject();
}
}
那么它也会影响 getPerson 服务的响应。
那么我如何使用服务级别序列化或任何其他方式来处理这个问题,使用 JACKSON ......