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.
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) –
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
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. –