/ / Jettison e JAXB cambiano automaticamente il tipo di dati nella risposta JSON - java, json, jaxb, resteasy, jettison

Jettison e JAXB cambiano automaticamente il tipo di dati nella risposta JSON - java, json, jaxb, resteasy, jettison

Sto usando Resteasy 2.0.1.GA e Resteasy-jettison-provider-1.2.GA con gli annunzii JAXB e ogni volta che ho una proprietà String che contiene tutti i numeri (ad es. String groupName="1111";), la risposta JSON lo visualizzerà come un numero rimuovendo le virgolette doppie. Se lo cambio a String groupName="oneoneoneoneone"; la risposta JSON lo tratterà come un pungiglione emantenere le virgolette nella risposta. È comunque necessario che il fornitore di Jettison interpreti rigorosamente i dati in risposta in base al tipo e non al valore?

risposte:

4 per risposta № 1

Questa sembra essere una "caratteristica" implicita di Jettison; cerca di introspettare i dati effettivi e capire quale sia il miglior tipo di adattamento, l'ho già incontrato prima, ed è esasperante.

Consiglio vivamente di abbandonare completamente Jettison e di usare il Supporto di RestEasy Jackson anziché. Jackson è una libreria di qualità molto migliore, e non soffre di queste "utili" funzionalità supporta le annotazioni JAXB proprio come Jettison.


0 per risposta № 2

Avere listener che imposta la seguente proprietà di sistema all'avvio del server.

System.setProperty("jettison.mapped.typeconverter.class"
,"org.codehaus.jettison.mapped.SimpleConverter");

Una volta che la proprietà è impostata su simpleConverter quindi rilasciare i valori sempre come stringa se il tipo di dati è string o int non ha importanza.