Uso de jersey jersey.java.net ¿Cómo configuro JSON como serialización predeterminada en lugar de XML cuando no hay un encabezado de aceptación o el sufijo .xml está en el URI?¿Cómo establecer el valor predeterminado para json en lugar de xml en jersey?
Respuesta
Puede asignar el índice de calidad a cada tipo de medio en la anotación @Produces. I.e.you puede hacer lo siguiente para hacer Jersey prefieren JSON si ambos XML y JSON están permitidos:
@Produces({"application/json;qs=1", "application/xml;qs=.5"})
Usted debe ser capaz de establecer la anotación @Produces
para especificar el formato de retorno de este modo:
@Produces({ "application/json" })
¿Cómo es que no hay acepta cabecera?
Esto dará como resultado un error 406 siempre que se solicite XML. El OP desea poder devolver XML y JSON, pero de forma predeterminada a JSON si no se solicita ninguno. – idontevenseethecode
te refieres a @Consumes ({"application/json"}) –
Puede especificar las preferencias de la generación mediante la especificación de los tipos de medios en su orden de preferencia en la anotación @Produces.
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
En el código anterior, ya que "application/json" viene primero, si no aceptan cabecera se especifica en la solicitud Jersey será por defecto la generación de respuesta JSON.
El uso de qs (como lo sugiere Martin) hace que la preferencia sea más explícita, pero es un poco más complicada de comprender.
Esto no parece funcionar en la versión actual. No puedo hablar de versiones anteriores de Jersey. Sin el encabezado 'aceptar', incluso si JSON es el primero en la lista de Productos, aún devuelve XML. ¿Podría haber algo más que afecte esto además de la versión de Jersey? – FredArters
Esta es solo información incorrecta. El orden de los tipos de medios en la anotación Produce no tiene ningún efecto en la respuesta predeterminada. – Michael
Bueno, Oracle dice que el orden es relevante: https://docs.oracle.com/cd/E19798-01/821-1841/6nmq2cp2c/index.html Pero creo que en realidad depende de la implementación – Gui13
- 1. ¿Renderizar JSON en lugar de HTML como valor predeterminado?
- 2. Cómo establecer el valor predeterminado en Hibernar
- 3. Establecer el valor predeterminado en JAXB
- 4. ¿Cómo establecer el valor predeterminado para sysdate en MySql?
- 5. ¿Cómo establecer el valor predeterminado para POCO en EF CF?
- 6. Devolver JSON o XML para excepciones en Jersey
- 7. JasperReports: valor predeterminado en lugar de 'nulo'
- 8. ¿Establecer el valor predeterminado en un DataContract?
- 9. Cómo establecer el valor predeterminado de la cadena vacía TextBox en lugar de nulo
- 10. Jersey JSON clave/orden de valor
- 11. Html.EditorFor Establecer valor predeterminado
- 12. C# cómo establecer el valor predeterminado dropDownList para selectedValue = null
- 13. ¿Cómo establecer un valor predeterminado para la lista de elementos?
- 14. Cómo establecer el valor predeterminado de un ListPreference
- 15. ¿Puedo establecer nulo como valor predeterminado para @Value en Spring?
- 16. Establecer el valor predeterminado en el diseñador de EF datetime
- 17. Establecer git diff en un valor predeterminado
- 18. ¿Cómo establecer el formato predeterminado para una ruta en Rails?
- 19. Establecer predeterminado content_type para Sinatra
- 20. Establecer un valor predeterminado para una propiedad
- 21. Establecer una enumeración en su valor predeterminado
- 22. Lanzar excepción en lugar de devolver el valor predeterminado
- 23. establecer el valor predeterminado en la lista desplegable con jQuery
- 24. cómo establecer el valor predeterminado de form_for select
- 25. Establecer editor predeterminado para archivos XML de Android
- 26. ¿Cómo definir un valor predeterminado para establecer una costumbre Django
- 27. Wicket Opción desplegable para establecer el valor predeterminado
- 28. phpmyadmin - predeterminado para estructurar en lugar de navegar
- 29. Cómo establecer el proyecto predeterminado para SBT
- 30. C# ¿Cómo establecer un valor predeterminado para las propiedades automáticas?
Entonces, con el método web capaz de producir dos tipos de medios, ¿cómo especifica el solicitante cuál quiere? ¿Se hace a través de un param de consulta? ¿Cómo? –
Usando el encabezado de solicitud Aceptar. (http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#z3) –
Spot on. ¡Gracias! – FredArters