J'ai un objet de domaine qui est utilisé pour 2 services différents comme ci-dessous :
public class PersonDetails {
private String personId;
private String personMaritalStatus;
private String personFirstName;
private String personLastName;
// setters and getters ...
}
et avoir deux services différents.
Premier :
public BaseResponse getClient(@QueryParam("id") @DefaultValue("-1") String id)
{
}
ce service doit retourner le json comme ci-dessous :
{ "personId":12,
"personMaritalStatus":"married",
"personFirstname" :"abc",
"personLastname":"pqr" }
Deuxième service :
public BaseResponse getClientName(@QueryParam("id") @DefaultValue("-1") String id)
{
}
ce service doit retourner le json comme ci-dessous :
{"personFirstname" :"abc"}
Donc si j'ai utilisé @JsonSerialize(using=PersonDetailsSerializer.class)
sur l'objet de domaine et la classe de sérialiseur seront comme ci-dessous :
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();
}
}
alors cela a un impact sur la réponse pour le service getPerson aussi.
Alors comment puis-je utiliser la sérialisation au niveau du service ou y a-t-il un autre moyen de gérer cela, en utilisant JACKSON...