以下のように2つの異なるサービスに使用される1つのドメインオブジェクトがあります:
public class PersonDetails {
private String personId;
private String personMaritalStatus;
private String personFirstName;
private String personLastName;
// setters and getters ...
}
そして2つの異なるサービスを持っています。
最初の1つ :
public BaseResponse getClient(@QueryParam("id") @DefaultValue("-1") String id)
{
}
このサービスは次のようにjsonを返す必要があります:
{ "personId":12,
"personMaritalStatus":"married",
"personFirstname" :"abc",
"personLastname":"pqr" }
2番目のサービス:
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を使用して、サービスレベルのシリアル化をどのように使用できますか、またはこれを処理する他の方法はありますか...