2010-03-23 23 views
25

Estoy escribiendo algunas pruebas de aceptación para una aplicación de Java que devuelve objetos JSON. Me gustaría verificar que el JSON devuelto valide contra un esquema. ¿Alguien puede sugerir alguna herramienta para esto?Validación de esquema JSON usando java

+1

¿Un esquema para JSON? ¿Existe tal cosa? – skaffman

+8

[Sí] (http://json-schema.org/) – quikchange

+1

Hay un borrador en IETF: http://tools.ietf.org/html/draft-zyp-json-schema-04 e implementaciones, para Java ver https://github.com/fge/json-schema-validator – eskatos

Respuesta

6

El JSON Tools project (Programmer's Guide) incluye una herramienta para validar el contenido de un archivo JSON utilizando un esquema JSON.

Una alternativa podría ser validar la ejecución de (JavaScript) JSON Schema Validator usando Rhino.

+1

Apuesto a que muchas cosas han cambiado en este tema desde marzo de 2010. ¿Qué piensas ahora? ¿Estás usando algo para la validación de JSON? Además, @Fredrik, ¿qué hay de ti? – blong

4

El json-schema-validator (actualmente en la versión 0.0.1, por lo que está en un estado pre-alfa) funcionó bastante bien para mí. Tenga en cuenta que no está completo al 100%, pero podría identificar correctamente muchos errores en mi contenido json.

+0

El proyecto detrás está alojado en http://gitorious.org/json-schema-validation-in-java y aún bastante activo – ngeek

+0

Ahora es la versión 2.2.6, pero el autor ya no lo mantiene y busca un nuevo tipo para Haz eso. Sin embargo, es probablemente la única opción en Java en este momento. – Vlasec

+2

Ambos enlaces anteriores son antiguos. Lo encontré aquí: [https://github.com/daveclayton/json-schema-validator](https://github.com/daveclayton/json-schema-validator) – mojoken

4

@ b.long Me encontré con esta publicación en busca de una solución muy particular para verificar fácilmente si el contenido de una cadena tiene un JSON (objeto/matriz). No pude encontrar ninguna biblioteca que se adaptara a mis necesidades.

JSON Tools project o json-schema-validator ofrecen mucho pero son demasiado grandes para mis necesidades. Por lo tanto, implementé my own solution que se compila en la parte superior de JSON.org reference implementation of JSON in Java. Ya he estado usando el código de JSON.org y técnicamente toda esta funcionalidad ya estaba allí, así que agregué esta funcionalidad muy simple reutilizando su código.

Lo uso para probar fácilmente si la cadena devuelta por los métodos que consultan mi base de datos está formateada en el JSON adecuado, de lo contrario, si se formatea mal y se envía a un cliente, podría dejar de funcionar.

Espero que esto te sea útil ya que es para mí.

Cuestiones relacionadas