2009-09-03 11 views
12

Esistono semplici librerie (.NET e Java) in grado di convalidare una stringa JSON data una definizione di schema?Come posso convalidare una stringa JSON su uno schema a livello di codice?

Dovrebbe funzionare in modo simile al modo in cui XML può essere convalidato utilizzando XSD.

MODIFICA: Ho bisogno di .NET e librerie Java. Grazie a darin per il collegamento .NET!

+0

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

+0

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

+0

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

risposta

4

Here È possibile trovare alcune classi Java che potrebbero essere utili quando si lavora con JSON.

Quando la sintassi della stringa JSON è un'istanza errata di JSONException verrà generata - questo è il modo più semplice per verificare la correttezza, penso. JSONTokener è la classe che è necessario utilizzare per analizzare. Ha un costruttore che prende come parametro java.lang.String.

Modifica: Mi dispiace, ho frainteso un po '. Probabilmente JSON Tools è la libreria che stai cercando. Fornisce validation using a JSON schema.

+0

Sto cercando la convalida dello schema, non la convalida della sintassi. Farò la domanda più chiara. –

+0

Ho modificato la mia risposta. –

+0

In suvated, grazie per il collegamento. Userò Json.NET e JSON Tools. Non c'è modo di accettare 2 risposte? –

1

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.

Problemi correlati