Il client/browser effettua una richiesta JSON alla mia risorsa di riposo (il tipo di contenuto della richiesta è application/json
e il metodo REST corrispondente è @Consumes("application/json")
annotato).Ottieni semplice parametro JSON da una richiesta JSON in JAX-RS
@Path("/process-something")
@POST
@Produces("application/json")
@Consumes("application/json")
@HandleDefaultExceptions
public AResponse processSomething(List<Long>) {
}
Il corpo JSON è costituito da alcuni tipi semplici, come List<Long>
o String
.
C'è una semplice possibilità di ottenere i parametri JSON iniettati semplicemente annotandoli in qualche modo, in modo simile a @FormParam
nel caso di una richiesta application/x-www-form-urlencoded
? Vorrei alcune altre soluzioni più semplici della decodifica della stringa JSON con Jackson ObjectMapper
o Jettison's JSONObject
.
quale quadro che si sta utilizzando per l'attuazione jaxrs?, Ci sono molti quadri là fuori che forniscono supporto JSON anche se solo l'annotazione non è sufficiente, si dovrà mappare i fornitori adeguati, ma quello non è un grosso problema. Segnala Jersey, Apache CXF – Sikorski
Jersey è quello che uso. Spero che con Mapping non intendi creare ObjectMapper o altre istanze di oggetti (vedi l'ultima parte della domanda) ... –
no, voglio dire che dovrai fornire una voce in web.xml o qualche altro file di configurazione che dirà alla maglia di usare il supporto JSON. vedi questo: https://jersey.java.net/documentation/latest/media.html#json - E queste sono le soluzioni più facili! – Sikorski