Utilizzo di jersey jersey.java.net Come si imposta JSON come serializzazione predefinita anziché XML quando non è presente l'intestazione di accettazione o il suffisso .xml nell'URI?Come impostare di default su json invece di xml in jersey?
risposta
È possibile assegnare l'indice di qualità a ciascun tipo di supporto nell'annotazione @Produces. I.e.you può fare quanto segue per rendere Jersey preferiscono JSON se entrambi XML e JSON sono consentiti:
@Produces({"application/json;qs=1", "application/xml;qs=.5"})
Si dovrebbe essere in grado di impostare il @Produces
annotazioni per specificare il formato di ritorno in questo modo:
@Produces({ "application/json" })
Come mai non c'è accetta intestazione?
Ciò comporterà un errore 406 ogni volta che viene richiesto XML. L'OP vuole essere in grado di restituire XML e JSON, ma di default su JSON se nessuno dei due è richiesto. – idontevenseethecode
intendi @Consumi ({"application/json"}) –
È possibile specificare la tipologia di generazione specificando i tipi di media nel vostro ordine di preferenza l'annotazione @Produces.
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
Nel codice precedente poiché "application/json" viene in primo luogo, se non accettare intestazione è specificato nella richiesta Jersey imposterà generare risposta JSON.
L'utilizzo di qs (come suggerito da Martin) rende la preferenza più esplicita, ma è un po 'più complicata da comprendere.
Questo non sembra funzionare nella versione attuale. Non posso parlare per le versioni precedenti di Jersey. Senza l'intestazione 'accept', anche se JSON è il primo nell'elenco Produces, restituisce ancora XML. Potrebbe esserci qualcos'altro che influisce su questo oltre alla versione di Jersey? – FredArters
Questa è solo un'informazione errata. L'ordine dei tipi di media nell'annotazione Produce non ha assolutamente alcun effetto sulla risposta predefinita. – Michael
Bene, Oracle afferma che l'ordine è pertinente: https://docs.oracle.com/cd/E19798-01/821-1841/6nmq2cp2c/index.html Ma penso che in realtà sia dipendente dall'implementazione – Gui13
- 1. ASMX webservice - ritorno JSON invece di XML
- 2. Personalizza il serializzatore Json invece del valore predefinito di Jersey?
- 3. Restituzione di JSON o XML per le eccezioni nel Jersey
- 4. Jersey consuma JSON su POST
- 5. Come restituisco la risposta HTTP 404 JSON/XML in JAX-RS (Jersey) su Tomcat?
- 6. ASP.NET web API che restituisce XML invece di JSON
- 7. Come impostare i parametri di default su jvm?
- 8. Jersey Consuma post XML
- 9. Come impostare il controller di default in Yii
- 10. Stampa Jersey JSON in Unit Testing
- 11. REST. Jersey. Come scegliere a livello di programma quale tipo restituire: JSON o XML?
- 12. Come impostare il controller di default in Laravel?
- 13. Come generare JSON da una risorsa Jersey?
- 14. Polymorphism in JSON, Jersey e Jackson
- 15. Come riutilizzare JSON/JAXB di Jersey per la serializzazione?
- 16. Analisi di campioni Jersey
- 17. Utilizzo di Jackson e Jettison in Jersey
- 18. Jersey/Jackson: come catturare l'eccezione JSON?
- 19. jersey web service codifica json utf-8
- 20. force xml return su alcuni web api controller mantenendo il default JSON
- 21. Restituzione di JSONP da Jersey
- 22. Jersey, come POSTARE un elenco di oggetti JSON?
- 23. Utilizzo di Jackson come serializzatore client Jersey
- 24. Come trasferire un elenco di Primitive con Jersey + JAXB + JSON
- 25. usa AMF invece di JSON su iPhone? (per servizi Web)
- 26. Scelte di Django. Come impostare l'opzione di default?
- 27. jQuery.ajax restituisce jsonp invece di JSON
- 28. Tornando alla rappresentazione JSON di una stringa con Jersey
- 29. servizio web asmx restituendo xml invece di json in .net 4.0
- 30. Creazione di un servizio Web ASP.net che restituisce JSON invece di XML
Quindi, con il metodo web in grado di produrre due tipi di media, in che modo il richiedente specifica quale desidera? È fatto tramite una query param? Come? –
Utilizzo dell'intestazione della richiesta Accept. (http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#z3) –
Spot on. Grazie! – FredArters