Anpassen der JSON-Serialisierung mit JaxRS

In einem webservice-Aufruf, ich möchte zurück, meine Objekte mit dieser JSON-Struktur.

{
  "date" : "30/06/2014",
  "price" : {
    "val" : "12.50",
    "curr" : "EUR"
  }
}

Möchte ich anzeigen dieses JSON-code, um die Java-Struktur (mit joda-time und joda-Geld):

public class MyResponse {
  LocalDate date;
  Money price;
}

Meine webservice-aktuell sieht so aus:

@javax.ws.rs.POST
@javax.ws.rs.Path("test")
@javax.ws.rs.Produces({MediaType.APPLICATION_JSON})
@javax.ws.rs.Consumes({MediaType.APPLICATION_JSON})
public MyResponse test(MyRequest request) {
  MyResponse response = new MyResponse();
  response.setDate(LocalDate.now());
  response.setMoney(Money.parse("EUR 12.50"));
  return response;
}

Also meine Frage ist: wo registriere ich einen benutzerdefinierten handler-format stammt, wie ich will, sowie Geld zusagen?

  • Ich glaube, dein Jax-RS Implementierung verwendet einige Bibliotheken für die Handhabung von JSON. Zum Beispiel Spring verwendet Jackson für diese Zwecke und in der Regel, wenn Sie brauchen eine benutzerdefinierte Serialisierung müssen nur konfigurieren Serialisierung Verhalten mit Jackson APIs
  • Der Rahmen scheint org.jboss.resteasy:jaxrs-api:jar:2.1.0.GA:provided. Es ist vorgesehen, ich denke, es nutzt die standard-JBoss 6 JSon serializer, aber ich kann nicht finden, welcher das ist.
Schreibe einen Kommentar