2009-09-03 19 views
12

¿Existen bibliotecas simples por ahí (.NET y Java) que puedan validar una cadena JSON dada una definición de esquema?¿Cómo puedo validar una cadena JSON contra un esquema mediante programación?

Debería funcionar de forma similar a cómo se puede validar XML utilizando XSD.

EDIT: Necesito .NET y bibliotecas de Java. ¡Gracias a darin por el enlace de .NET!

+0

Las bibliotecas elegidas fueron Json.NET (para .NET) y JsonTools (para Java). Utilizo http://www.json-schema.org/ y http://groups.google.com/group/json-schema/web/json-schema-proposal-working-draft como referencia para crear los esquemas. También puede verificar su esquema y JSON en línea aquí: http://james.newtonking.com/projects/json/schema.aspx (del creador de Json.NET) –

+0

Apuesto a que muchas cosas han cambiado en este tema desde Septiembre de 2009. ¿Cuáles son sus pensamientos ahora? ¿Estás utilizando algo para la validación de JSON (específicamente con Java)? Además, @Dejw, ¿qué hay de ti? – blong

+0

Bueno, a decir verdad, he pasado a nuevos proyectos bastante pronto después de usar esta validación. Si mal no recuerdo, cancelamos la validación al final.Tenía que proporcionar un medio de validación para apaciguar a los superiores, que preferían XML. Pero fueron felices sin la validación al final. Realmente no veo una buena razón para agregar la complejidad de la validación. Simplemente asigne sus objetos JSON a ViewModels o DTOs y realice la comprobación adecuada de los parámetros. Sus ViewModels o DTO del lado del servidor pueden actuar como definiciones de esquema y validación todo en uno, creo. Esa es mi opinión en estos días. –

Respuesta

4

Here Puede encontrar algunas clases de Java que pueden ser útiles al trabajar con JSON.

Cuando la sintaxis de Your JSON String es incorrecta instancia de JSONException se lanzará - esta es la forma más sencilla de verificar la corrección, creo. JSONTokener es la clase que debe usar para analizar. Tiene un constructor que toma java.lang.String como parámetro.

Edit: Lo siento, he entendido mal un poco. Probablemente JSON Tools es la biblioteca que está buscando. Proporciona validation using a JSON schema.

+0

Estoy buscando la validación de esquema, no la validación de sintaxis. Haré la pregunta más clara. –

+0

He editado mi respuesta. –

+0

Upvoted, gracias por el enlace. Usaré las herramientas Json.NET y JSON. ¿No hay manera de aceptar 2 respuestas? –

1

He usado NJsonSchema para la biblioteca .NET recientemente para la validación contra un esquema y funcionó perfectamente para mí, incluso para esquemas complejos con las definiciones en varios archivos:

https://github.com/NJsonSchema/NJsonSchema

NJsonSchema es una biblioteca .NET para leer, generar y validar JSON esquema esquemas proyecto v4. La biblioteca puede leer un esquema de un archivo o cadena y validar datos JSON en su contra. Un esquema también se puede generar a partir de una clase .NET existente. Con las API de generación de código, puede generar clases o interfaces C# y TypeScript a partir de un esquema.

Permite no solo validar frente a un esquema, sino también generar archivos de esquema a partir de las clases existentes. La ventaja es que es una fuente abierta y la comunicación con el autor del proyecto fue muy rápida y buena en caso de mis preguntas.

Puede ser una buena opción para alguien que busca una solución gratuita para la validación.

Cuestiones relacionadas