how create json structure using c
Création de la structure JSON (partie 2):
Dans notre tutoriel précédent, nous avons discuté création d'un fichier JSON simple à l'aide d'exemples d'ensembles de données .
Nous avons également pris connaissance des détails sur l'utilisation d'un framework json.Net pour la sérialisation des données au format JSON. Nous avons exploité C # et Visual Studio pour créer une application console simple pour utiliser les données et les valeurs de clé fournies par nous, puis nous avons sérialisé ces valeurs de clé dans la structure JSON. Voyons maintenant ce que ce didacticiel couvrira à mesure que nous avancerons.
Dans ce didacticiel, nous aborderons les moyens de créer une structure JSON plus complexe. Nous créerons des tableaux avec plusieurs ensembles de données et examinerons également les moyens de créer une structure imbriquée dans JSON.
La plupart des fichiers JSON utilisés pour la transmission de données entre divers systèmes contiennent des structures de données plus complexes. Ainsi, l'apprentissage de la structure JSON complexe vous aidera à créer des données de test basées sur les exigences du schéma JSON.
Ce que vous apprendrez:
- Rédaction du code
- Ajout d'un tableau avec plusieurs données dans JSON
- Effectuer des opérations sur les données avant de les affecter à des clés JSON
- Création d'une structure JSON imbriquée
- Utilisation d'une feuille Excel comme source de données pour JSON
- Conclusion
- lecture recommandée
Rédaction du code
Nous ferons référence à notre article précédent dans ce tutoriel. Par conséquent, je suggérerais à tout le monde de passer d'abord par le tutoriel précédent, avant de passer à celui-ci.
Nous utiliserons les mêmes données JSON que celles utilisées dans notre tutoriel précédent. Nous ferons également un suivi sur le même ensemble de code que nous avons écrit pour notre précédent exemple JSON.
Commençons maintenant.!!
Ajout d'un tableau avec plusieurs données dans JSON
Pour ajouter un tableau au JSON, ajoutons une clé de tableau à notre ensemble de données précédent.
Notre ensemble de données deviendra comme indiqué ci-dessous:
L'ajout d'un objet de tableau au JSON est similaire à celui de l'ajout de toute autre valeur de clé. Les valeurs peuvent être affectées directement au moment de la déclaration du tableau lui-même. Une fois que les valeurs ont été affectées à un tableau, le newtonsoft JSON sérialisera les objets en paires clé-valeur.
Pour ajouter le tableau dans le JSON, nous le déclarerons dans le 'Employé' classe elle-même. (Veuillez vous référer à notre tutoriel précédent pour plus de détails)
namespace jsonCreate { class Employee { public string FirstName = 'Sam'; public string LastName = 'Jackson'; public int employeeID = 5698523; public string Designation = 'Manager'; public string() KnownLanguages = { 'C#', 'Java', 'Perl' }; } }
Comme vous pouvez le voir, nous avons directement déclaré le tableau dans la classe Employee. N'apportez aucune modification à la méthode principale. La création d'une classe différente pour l'objet JSON nous aidera à garder les objets organisés.
Chaque fois qu'il y a des modifications dans la structure JSON ou lorsque vous souhaitez ajouter un autre ensemble de données, tout ce que vous avez à faire est d'apporter les modifications dans ce fichier de classe particulier uniquement plutôt que d'apporter des modifications dans tout le projet. Cela signifie que votre méthode Main restera la même la plupart du temps et que les changements ne se produiront qu'à l'intérieur des classes.
Exécutons le programme et créons notre fichier JSON avec le tableau.
Maintenant, copiez le contenu et collez Ici pour valider si le JSON créé est valide ou non.
Clique sur le Valider JSON bouton pour le valider. Les paires clé-valeur JSON seront organisées et la validation sera effectuée sur l'ensemble de données donné.
Effectuer des opérations sur les données avant de les affecter à des clés JSON
Supposons que nous ayons des données et que nous souhaitons effectuer une opération sur ces données avant de les affecter en tant que valeurs aux clés JSON.
Dans un tel cas, comment allons-nous faire cela?
Par exemple: Disons que l'ID d'employé que nous avons transmis au JSON est composé de deux parties, les trois premières lettres désignent le code de l'emplacement et les 4 derniers chiffres désignent le numéro d'employé. La concaténation des deux nous donnera l'identifiant d'employé d'un employé.
Dans le cas où nous recevons le code de localisation et le numéro d'employé séparément, nous devrons les concaténer pour former un identifiant d'employé. Ce n'est qu'alors que nous pouvons le transmettre via le JSON.
Afin de surmonter ce type de scénarios, nous devons effectuer des opérations sur les données avant de les affecter à une clé.
Voyons comment cela peut être fait.
Revenons à notre classe d'employés et créons une autre classe, à l'intérieur de laquelle nous effectuerons toutes les opérations.
Ici, nous allons créer une autre classe pour contenir et effectuer les opérations sur les données des employés.
Créons une nouvelle classe 'EmployeeData'.
La classe a été créée et nous allons maintenant créer une méthode avec un spécificateur d'accès public et un type de retour comme notre classe 'Employé'. Nous avons fourni le nom de la méthode comme 'EmployeeDataOps' . Cependant, vous pouvez fournir votre propre nom. Afin de rendre cela plus simple, je ne passe aucun paramètre dans cette méthode.
Comme nous avons décrit le type de retour comme une classe, nous devrons renvoyer une instance de la classe Employee. Pour ce faire, nous allons créer un objet de classe à l'intérieur de la méthode.
Ici, nous avons créé un objet pour la classe Employee avec le nom EmpObj et à la fin de la méthode, nous avons renvoyé l'objet.
Définissons deux entiers dans la classe EmployeeData représentant le code d'emplacement complet et le numéro d'employé. Une fois déclaré, nous l'utiliserons pour effectuer des opérations, puis attribuerons des valeurs aux clés respectives.
int locationCode = 569; int employeeNumber = 8523;
Maintenant, comme nous avons le code d'emplacement et le numéro d'employé, nous pouvons effectuer des opérations sur eux pour trouver l'ID d'employé. Pour ce faire, nous allons écrire un code simple pour concaténer les deux entiers.
int empID = int.Parse(locationCode.ToString() + employeeNumber.ToString());
Cela concaténera simplement les deux entiers formant l'ID d'employé. Nous avons stocké l'ID d'employé sous la variable 'EmpID' , et maintenant nous allons passer cette variable à «employeeID» dans EmpObj.
Employee EmpObj = new Employee(); EmpObj.employeeID = empID; return EmpObj;
L'ensemble de l'exemple de code ressemblera à celui ci-dessous:
python sélénium trouver un élément par texte
Avez-vous remarqué que nous avons supprimé la valeur que nous avions précédemment affectée à la variable employeeID dans la classe Employee? Nous l'avons fait car nous retournons la valeur de EmployeeDataOps () méthode. Par conséquent, les données des variables seront alimentées à partir de cette méthode elle-même. Cela supprime la nécessité de déclarer directement les valeurs.
quel programme ouvrira un fichier eps
Comme nous en avons terminé avec la méthode maintenant, nous devrons ajouter une instance de cette méthode à la méthode principale afin que cette méthode puisse être appelée.
Pour ce faire, nous allons créer un autre objet de classe dans la méthode principale pour 'EmployeeData' classer.
EmployeeData empData = new EmployeeData();
Une fois que nous avons créé un objet de classe, nous allons maintenant affecter la méthode à l'intérieur de cette classe à l'objet Emp que nous avons créé précédemment pour la classe d'employé.
emp = empData.EmployeeDataOps();
Enfin, le code à l'intérieur de la méthode main ressemblera à ceci:
Mettons quelques données de test:
Code d'emplacement = 123
Numéro d'employé = 9874
Nous mettrons ces données dans le code et avec les modifications finales de la méthode principale. Nous avons maintenant terminé notre code. Maintenant, exécutons le code et validons notre JSON.
Voici le JSON qui a été créé:
Comme vous pouvez le voir, la nouvelle valeur concaténée pour l'ID d'employé a été entrée dans la valeur JSON.
Copions et collons ce JSON Ici pour valider sa structure. Mettez le texte dans le site JSON lint.
Utilisez le bouton de validation pour valider la structure comme indiqué ci-dessous:
Création d'une structure JSON imbriquée
L'exemple dont nous avons discuté jusqu'à présent utilise principalement des valeurs de chaîne et numériques à l'intérieur d'un tableau ou d'un objet. Mais JSON peut également être utilisé pour exprimer un objet JSON entier en utilisant la même notion qu'un élément de tableau. Les membres de l'objet à l'intérieur de la liste peuvent utiliser leurs propres objets et clés de tableau.
Dans Introduction to JSON, l'un de nos précédents tutoriels, nous avons examiné pour la première fois à quoi ressemble un JSON imbriqué. Dans ce didacticiel, nous supposons que l'employé a également une voiture et que le JSON doit également contenir tous les détails sur la voiture de l'employé.
Ainsi, la structure JSON que nous obtenons à la fin sera similaire à ceci:
Ici, nous avons l'employé JSON avec toutes les données, puis nous avons également un objet Car JSON imbriqué dans le JSON de l'employé. L'objet Car possède son propre jeu de clés et de valeurs.
Essayons de créer ce JSON par programmation.
Pour cela, nous allons commencer avec le même JSON que nous avons créé dans notre tutoriel précédent. Pour faciliter les choses, nous allons créer le nouvel objet JSON (c'est-à-dire Car JSON) dans une nouvelle classe. Nous ajouterons une nouvelle voiture de classe et ajouterons tous les objets à l'intérieur de cette classe avec un spécificateur d'accès public.
Maintenant, nous pouvons soit ajouter la valeur directement ici, soit écrire une nouvelle classe et créer une méthode personnalisée avec un type de retour d'objet de classe pour affecter les valeurs similaires à ce que nous avons fait dans le didacticiel précédent. Pour des raisons de commodité, nous attribuerons la valeur directement aux variables clés.
Maintenant, nous avons créé une nouvelle classe avec les objets et les valeurs. Dans l'étape suivante, nous ajouterons ceci à la structure JSON des employés, de sorte que lorsque la sérialisation JSON se produit, les valeurs-clés de la classe Car doivent également être sérialisées avec la classe d'employé comme imbriqué JSON.
Pour ce faire, nous devons d'abord ajouter une voiture d'objet de type classe dans la classe Employee. Cet objet sera utilisé pour stocker les valeurs présentes dans la classe Car.
Comme indiqué ci-dessus, nous avons affecté la nouvelle variable avec le type de données comme classe Car. Passons maintenant à la méthode EmployeeDataOps () que nous avons créée dans la classe EmployeeData. Nous écrirons le code pour appeler les variables et les valeurs de la classe Car.
Commençons par créer un objet de classe pour la classe de voiture:
Car carObj = new Car();
Cet objet contiendra toutes les données de la classe de voiture. Une fois que nous avons déclaré toutes les données de la classe de voiture dans cet objet, l'étape suivante consistera à affecter ces données (données contenues dans l'objet voiture) à la variable de voiture que nous avons créée pour contenir ces données.
Pour ce faire, nous utiliserons simplement l'objet Employee que nous avons créé pour accéder à la variable car. Et puis nous pouvons directement affecter l'objet voiture avec les données à la variable voiture.
EmpObj.car = carObj;
C'est tout. Nous avons créé une variable dans une classe puis créé un autre objet pour accéder à la valeur d'une autre classe, puis nous avons attribué la valeur à la première variable.
Maintenant, exécutons notre programme et voyons s'il peut créer le JSON souhaité.
Comme indiqué ci-dessus, nous voyons qu'une clé json de voiture a été créée et qu'elle contient toutes les données que nous avons entrées dans la classe Car comme clé et valeurs. Maintenant, nous allons à nouveau copier le contenu JSON et naviguer Ici pour valider le JSON.
Copiez simplement tout le contenu JSON dans la zone de texte et cliquez sur le 'Validez JSON ' bouton.
Ainsi, le site JSONlint a agencé nos données et les a parfaitement validées. Nous pouvons voir que l'objet «voiture» a été arrangé dans la structure JSON comme nous le souhaitions. En utilisant le même processus, vous pouvez créer plusieurs niveaux de JSON imbriqué. Continuez simplement à ajouter l'objet JSON à la classe et attribuez sa valeur à une variable de classe.
Comme vous pouvez le voir, nous n'avons même pas besoin de modifier le code de notre méthode principale.
Utilisation d'une feuille Excel comme source de données pour JSON
Dans nos didacticiels précédents, nous avons discuté de plusieurs façons de créer différentes structures de JSON. Mais il y avait un gros problème avec toutes nos structures, nous codions toujours en dur les valeurs des clés.
Dans ce didacticiel, nous discuterons des moyens par lesquels nous pouvons utiliser une feuille Excel pour transmettre les données aux clés JSON. Je vous recommanderais de parcourir tous les didacticiels dont nous avons discuté plus tôt avant de poursuivre celui-ci, car nous discuterons du même code que celui que nous avons écrit dans les didacticiels précédents.
Aller étape par étape vous aidera à mieux comprendre l'ensemble du concept.
J'espère que vous avez compris le code de base pour créer un JSON, dans cette partie, nous reprendrons la même structure de code.
Commençons par créer un fichier Excel avec des données JSON.
Nous avons créé un fichier employeeData.xlsx avec les détails suivants.
Avant de commencer à écrire le code pour extraire les valeurs d'Excel, nous devrons ajouter une référence d'assembly à notre projet. Pour accéder à un objet bureautique, C # nous propose Microsoft Office Interop. Ceux-ci sont très utiles pour fournir un accès facile aux objets de bureau.
le progiciel le plus couramment utilisé pour créer des graphiques simples est
Comme nous utilisons Excel dans ce projet, nous utiliserons la référence d'assemblage Microsoft Office Interop Excel.
Pour l'installer, clic droit sur les références dans votre explorateur de solutions, puis sélectionnez Gérer les packages NuGet . Écrivez Microsoft Office Interop Excel dans la barre de recherche et le résultat de la recherche affichera le package requis.
Une fois que vous obtenez Microsoft Office Interop Excel, cliquez sur le Bouton d'installation pour l'installer.
Une fois l'installation terminée, vous pouvez voir que Microsoft Office Interop Excel a été ajouté à la liste des références d'assembly dans le projet.
Pour commencer, attribuons d’abord les différents éléments Excel.
Microsoft.Office.Interop.Excel.Application xlApp; Microsoft.Office.Interop.Excel.Workbook xlWorkBook; Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
Ici, nous avons attribué des valeurs à l'application Excel, au classeur Excel et à la feuille de calcul Excel. Une fois ceux-ci définis, nous les utiliserons dans nos prochaines étapes pour accéder aux valeurs de la feuille Excel.
Quelles sont les étapes que nous suivons généralement, si nous voulons récupérer une valeur à partir d'une feuille Excel?
Tout d'abord, nous accédons à l'application Excel, puis nous ouvrons le classeur Excel et la feuille de calcul Excel, puis nous localisons l'élément en fonction de ses valeurs de ligne et de colonne. Nous allons faire quelque chose de similaire ici.
Ce code permettra d'accéder à l'application Excel.
xlApp = new Microsoft.Office.Interop.Excel.Application();
Ce code ouvrira le classeur avec le nom donné présent à l'emplacement donné.
xlWorkBook = xlApp.Workbooks.Open(@'D:json employeeData.xlsx', 0, true, 5, '', '', true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, ' ', false, false, 0, true, 1, 0);
Maintenant, nous allons écrire un code pour accéder à la feuille de calcul particulière à l'intérieur du classeur. Nous avons une feuille de calcul nommée «Sheet1» (le nom par défaut dans la feuille Excel)
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets('Sheet1');
Comme nous avons accédé à la feuille de travail, la prochaine étape sera maintenant de trouver la bonne colonne et les bonnes données. Tout d'abord, nous chercherons une colonne avec la «Clé».
Par exemple, Commençons par rechercher la colonne avec la valeur 'FirstName'. Une fois que nous avons trouvé la valeur, nous extrairons le numéro de colonne. Ensuite, comme nous le savons, la première ligne contient l'en-tête et la deuxième ligne contient nos données, nous allons donc utiliser le numéro de colonne et le numéro de ligne pour extraire les données exactes.
Cela stockera le numéro de colonne du FirstName dans la variable.
var colmnVal = xlWorkSheet.Columns.Find('FirstName').Cells.Column;
Maintenant, nous allons utiliser le numéro de colonne du FirstName pour extraire la valeur de la cellule en dessous. Comme vous le savez, la méthode value ne retournera que le type chaîne, nous allons donc le stocker dans une variable chaîne.
string frstName = xlWorkSheet.Cells(2, colmnVal).Text.ToString();
Maintenant, nous avons la valeur du prénom stockée dans la variable. Nous allons donc utiliser l'objet employé que nous avons défini dans notre méthode pour attribuer la valeur.
Veuillez supprimer toutes les valeurs que vous avez assignées / codées en dur dans la classe Employee car nous retournerons les valeurs en utilisant notre méthode.
Mais il y a un problème avec cela, le '.Texte' La fonction renvoie toujours une valeur de chaîne. Donc, si nous voulons extraire la valeur d'un identifiant d'employé qui est un entier, il sera également extrait sous forme de chaîne. Nous devrons donc convertir cette chaîne en un entier avant de l'attribuer à l'objet JSON. Pour ce faire, nous analyserons directement la valeur en un entier.
Ainsi, le code de employeeID ressemblera à celui ci-dessous:
var colmnEmpID = xlWorkSheet.Columns.Find('employeeID').Cells.Column; string emplyID = xlWorkSheet.Cells(2, colmnEmpID).Text.ToString(); int emplyIDint = Int32.Parse(emplyID);
À la fin, nous analyserons la valeur de la chaîne en un entier car notre JSON reconnaît EmployeeID comme une valeur entière.
Ainsi, le code global pour récupérer les données pour les 4 colonnes ressemblera à celui ci-dessous:
Il ne nous reste plus qu'à affecter les variables que nous avons créées avec les données de la feuille Excel aux objets employés.
Tout est réglé, nous allons maintenant construire le projet. Une fois la construction terminée, nous exécuterons le programme pour générer le JSON.
Le JSON suivant sera généré:
Maintenant, comparons les données du JSON avec celles de la feuille Excel.
Comme indiqué ci-dessus, les données JSON correspondent aux données des 4 colonnes de la feuille Excel. Validez le JSON que notre programme a généré. Pour ce faire, nous visiterons à nouveau Ici . Copiez simplement tout le contenu JSON dans la zone de texte et cliquez sur le 'Valider JSON' bouton.
Hourra! Nous avons créé un JSON valide en utilisant les données d'Excel.
Faites de l'exercice pour vous:
Créez un JSON imbriqué à trois niveaux. Créez une société JSON parente et imbriquez le JSON d'employé que nous avons créé précédemment avec le JSON de voiture.
Conclusion
Nous avons maintenant atteint la fin de notre tutoriel. Cela a été un long tutoriel mais nous avons appris plusieurs choses. Nous avons appris à créer un JSON simple à l'aide de la programmation c # et les avantages de la catégorisation de différents ensembles de données JSON dans une classe différente. Nous avons également utilisé nos compétences en programmation pour ajouter des tableaux et même une autre structure JSON à l'intérieur d'un JSON parent.
Enfin, nous avons travaillé sur les moyens de récupérer des données à partir d'une autre source de données pour alimenter les valeurs vers les clés JSON.
J'espère que vous avez tous apprécié toute la série de tutoriels JSON jusqu'à présent.
Tutoriel n ° 4: Utilisation de JSON pour les tests d'interface
lecture recommandée
- Comment créer des objets JSON à l'aide de code C # (création JSON, partie 1)
- Principales questions et réponses d'entrevue JSON
- Utilisation de JSON pour les tests d'interface
- Tutoriel JSON: Introduction et un guide complet pour les débutants
- Structure de données de file d'attente en C ++ avec illustration
- MongoDB Créer une sauvegarde de base de données
- Empiler la structure de données en C ++ avec illustration
- Structure de données de liste liée circulaire en C ++ avec illustration