Después de buscar JSON en algunas bibliotecas existentes, finalmente terminé con estos dos:
- Jackson
- Google GSon
Soy un poco parcial hacia GSON, pero la palabra en la red es que GSon sufre de un cierto problema de rendimiento celestial (a partir de septiembre de 2009).
Estoy continuando mi comparación; Mientras tanto, estoy buscando ayuda para decidirme.
Respuestas:
Hice esta investigación la semana pasada y terminé con las mismas 2 bibliotecas. Como estoy usando Spring 3 (que adopta Jackson en su vista Json predeterminada ' JacksonJsonView ') fue más natural para mí hacer lo mismo. Las 2 lib son más o menos iguales ... ¡al final simplemente se asignan a un archivo json! :)
De todos modos, como dijiste, Jackson tiene un + en rendimiento y eso es muy importante para mí. El proyecto también es bastante activo, como se puede ver en su página web, y eso también es una muy buena señal.
fuente
Jackson y Gson son los paquetes Java JSON más completos con respecto al soporte de enlace de datos real; muchos otros paquetes solo proporcionan enlaces primitivos de Mapa / Lista (o modelo de árbol equivalente). Ambos tienen soporte completo para tipos genéricos, así como suficiente configurabilidad para muchos casos de uso comunes.
Dado que estoy más familiarizado con Jackson, aquí hay algunos aspectos en los que creo que Jackson tiene un soporte más completo que Gson (disculpas si pierdo una función de Gson):
fuente
Gson 1.6 ahora incluye una API de transmisión de bajo nivel y un nuevo analizador que en realidad es más rápido que Jackson.
fuente
Agregando a otras respuestas ya dadas anteriormente. Si la insensibilidad de mayúsculas y minúsculas es importante para usted, use Jackson. Gson no admite la insensibilidad a mayúsculas y minúsculas para los nombres clave, mientras que jackson sí.
Aquí hay dos enlaces relacionados
(No) Soporte de mayúsculas y minúsculas en Gson: GSON: ¿Cómo obtener un elemento insensible a mayúsculas y minúsculas de Json?
Soporte de mayúsculas y minúsculas en Jackson https://gist.github.com/electrum/1260489
fuente
MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES
, agregado en Jackson 2.5. Por lo tanto, no es necesario agregar un código personalizado para eso.Parece que GSon no es compatible con JAXB. Al usar la clase anotada JAXB para crear o procesar el mensaje JSON, puedo compartir la misma clase para crear la interfaz de Restful Web Service usando Spring MVC.
fuente