Ho usato NJsonSchema per la libreria .NET di recente per la convalida rispetto a uno schema e ha funzionato perfettamente per me, anche per i regimi complessi con definizioni in diversi file:
https://github.com/NJsonSchema/NJsonSchema
NJsonSchema è una libreria .NET per leggere, generare e validare JSON schema schemi progetto V4. La libreria può leggere uno schema da un file o una stringa e convalidare i dati JSON su di esso. Uno schema può anche essere generato da una classe .NET esistente. Con le API di generazione del codice è possibile generare classi e interfacce C# e TypeScript da uno schema.
Consente non solo di convalidare lo schema, ma anche di generare file di schema da classi esistenti. Il vantaggio è che è un open source e la comunicazione con l'autore del progetto è stata molto veloce e buona in caso di domande.
Può essere una buona scelta per chi cerca una soluzione gratuita per la convalida.
Le librerie selezionate erano Json.NET (per .NET) e JsonTools (per Java). Uso http://www.json-schema.org/ e http://groups.google.com/group/json-schema/web/json-schema-proposal-working-draft come riferimento per la creazione degli schemi. Puoi anche controllare lo schema e JSON online qui: http://james.newtonking.com/projects/json/schema.aspx (dal creatore di Json.NET) –
Scommetto che molto è cambiato su questo argomento dal Settembre 2009. Quali sono i tuoi pensieri ora? Stai usando qualcosa per la convalida JSON (in particolare con Java)? Inoltre, @Dejw, e tu? – blong
Bene, a dir la verità, sono passato a nuovi progetti poco dopo aver usato questa convalida. Se ricordo bene, alla fine abbiamo scartato la convalida.Dovevo fornire un mezzo di convalida per placare i superiori, che preferivano l'XML. Ma erano felici senza la convalida alla fine. Non vedo davvero una buona ragione per aggiungere la complessità della convalida. Basta mappare gli oggetti JSON a ViewModels o DTO e fare il controllo dei parametri corretto. I tuoi ViewModels o DTO lato server possono fungere da definizioni di schema e convalida all-in-one, credo. Questo è il mio punto di vista in questi giorni. –