Générer des classes C# à partir de JSON Schema
Je suis de la création d'un C# WCF Service Web que le retour d'un grand nombre de données dans un format JSON.
Le client est une application iPad qui est actuellement développé par une autre équipe, Donc je suis en train de travailler sur les spécifications, sans données de l'exemple.
Actuellement, la chaîne JSON est créé par l' .net framework, mon Service Web retournant un objet de C# contenant toutes les informations qui sont sérialisés par le cadre à l'aide d'DataContracts.
Mon problème est que les caractéristiques techniques de la communication contenir uniquement JSON fichiers de Schéma (basé sur http://json-schema.org/). Afin de faciliter le développement, j'aimerais générer les classes correspondantes en C#, mais que les fichiers contiennent beaucoup d'informations et il y a une dizaine de fichiers, je n'ai pas vraiment envie de créer ces classes manuellement.
Donc je suis à la recherche d'un outil qui me permettrait soit :
- Pour générer des classes C# à partir d'un Schéma JSON.
- Pour convertir au format JSON Schéma d'un fichier XSD. Ensuite, il serait facile de créer les classes qu'il y a beaucoup d'outil pour générer des classes de XSD.
J'ai trouvé beaucoup d'outils pour valider une chaîne JSON à l'encontre d'un Schéma JSON ou pour générer des classes à partir de la chaîne JSON, mais rien qui semblent m'aider.
Il est JSON.NET, mais il semble être une bibliothèque et non pas un outil, et je n'ai pas trouvé d'informations sur la génération de classes avec elle.
Donc si quelqu'un connait un outils ou a une idée sur comment je pourrais générer les classes (j'ai essayé un outil qui créer les classes en Java, mais je ne pouvais pas le faire fonctionner).
- Cette question n'est pas exactement ce que je cherche. Je n'ai pas de chaîne JSON, j'ai juste un Schéma JSON. Il existe des outils pour la chaîne JSON -> Classe. Mais ne peut pas trouver un JSON Schema -> Classe.
Vous devez vous connecter pour publier un commentaire.
Look de cette bibliothèque sur nuget. Le NJsonSchema.CodeGeneration peut être utilisé pour générer de C# ou de la Machine a ecrire de code à partir d'un schéma JSON:
La variable fichier contient le code C# pour toutes les classes définies dans le schéma JSON.
J'avais besoin d'une classe générée aujourd'hui, mais ne pouvais pas trouver un site qui pourrait convertir en json schéma de classes c# en ligne donc utilisé les mentionnés ci-dessus de la bibliothèque et a écrit quelque chose rapidement http://json2csharp.rohitl.com/ espère que cette aide.
Visual Studio 2017 a cette fonction.
À partir du menu, choisissez Edition, collage Spécial, Coller JSON en tant Que Classes. Coller dans le JSON et Visual Studio va créer les classes nécessaires.
Vous pouvez utiliser la bibliothèque NJsonSchema pour lire un schéma JSON ou en générer un à partir d'un type, et de générer une classe C# à partir d'elle.
Si vous avez besoin d'une interface graphique pour ces tâches, vous pouvez essayer le NSwagStudio GUI de la NSwag outils pour le faire... (il est également basé sur NJsonSchema)
Je n'ai pas utilisé moi-même donc je ne peux pas commenter trop à ce sujet, mais il semble que l'outil "json-schéma-à-poco" permettrait de s'adapter à ce que vous avez besoin.
Par son github readme:
Afin de répondre correctement, vous devez savoir quelle version (projet) le Json Schema a.
Exemples dont les bibliothèques peuvent manche Schéma (2018-01-19):
http://json-schema.org/implementations.html#validator-dotnet
Avec
NJsonSchema.CodeGeneration
vous ne pouvez pas envoyer lesjson
directement, soit, vous devez d'abord le convertir en un véritable schéma (Vous aurez souvent l'erreur:Unable to cast object of type 'System.String' to type 'NJsonSchema.JsonSchema4
contraire).Exemple avec code en cours d'exécution,
Schemas
dossier situé à la racine du projet:J'avais besoin de ce genre d'aujourd'hui et de ne pas voir de solides réponses à vos question si je fouettée à cette. Il n'est pas parfait, mais c'est un bon point de départ pour construire de.
https://gist.github.com/rushfrisby/c8f58f346548bf31e045
Ont un coup d'oeil à l'Aide de Json.NET
Il y a un Json.Espace de noms du schéma qui peut être utile.
http://james.newtonking.com/projects/json/help/
Json.NET - un démarrage Rapide & Documentation de l'API
Newtonsoft.Json.Espace De Noms Du Schéma
Les Espaces De Noms ► Newtonsoft.Json.Schéma
La page du projet: http://json.codeplex.com/
Ici en ligne est un générateur de classe que j'ai utilisé dans le passé pour générer des classes C# à partir d'un ensemble d'échantillons de données JSON:
http://json2csharp.com/