how create json structure using c
Creazione della struttura JSON (parte 2):
Nel nostro precedente tutorial, abbiamo discusso creare un semplice file JSON utilizzando set di dati di esempio .
Siamo anche venuti a conoscenza dei dettagli sull'utilizzo di un framework json.Net per serializzare i dati in formato JSON. Abbiamo sfruttato C # e Visual Studio per creare una semplice applicazione console per utilizzare dati e valori chiave forniti da noi e quindi serializzato tali valori chiave nella struttura JSON. Ora, vediamo cosa tratterà questo tutorial mentre andiamo avanti.
In questo tutorial, discuteremo i modi per creare una struttura JSON più complessa. Creeremo array con più set di dati e esamineremo anche i modi per creare strutture nidificate in JSON.
La maggior parte dei file JSON utilizzati per la trasmissione di dati tra vari sistemi contengono strutture di dati più complesse. In tal modo, conoscere la complessa struttura JSON ti aiuterà a creare dati di test in base ai requisiti dello schema JSON.
Cosa imparerai:
- Scrivere il codice
- Aggiunta di array con più dati in JSON
- Esecuzione di operazioni sui dati prima di assegnarli alle chiavi JSON
- Creazione di una struttura JSON annidata
- Utilizzo di un foglio Excel come origine dati per JSON
- Conclusione
- Lettura consigliata
Scrivere il codice
Faremo riferimento al nostro post precedente in questo tutorial. Quindi suggerirei a tutti di seguire prima il tutorial precedente, prima di procedere con questo.
Useremo gli stessi dati JSON che abbiamo usato nel nostro precedente tutorial. Seguiremo anche lo stesso set di codice che abbiamo scritto per il nostro precedente esempio JSON.
Cominciamo adesso. !!
Aggiunta di array con più dati in JSON
Per aggiungere un array al JSON, aggiungiamo una chiave dell'array al nostro set di dati precedente.
Il nostro set di dati diventerà come mostrato di seguito:
L'aggiunta di un oggetto array a JSON è simile a quella dell'aggiunta di altri valori chiave. I valori possono essere assegnati direttamente al momento della dichiarazione dell'array stesso. Dopo che i valori sono stati assegnati a un array, il JSON newtonsoft serializzerà gli oggetti in coppie chiave-valore.
Per aggiungere l'Array nel JSON, lo dichiareremo nel file 'Dipendente' classe stessa. (Fare riferimento al nostro tutorial precedente per i dettagli)
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' }; } }
Come puoi vedere, abbiamo dichiarato direttamente Array nella classe Employee. Non apportare modifiche al metodo principale. La creazione di una classe diversa per l'oggetto JSON ci aiuterà a mantenere gli oggetti organizzati.
Ogni volta che vengono apportate modifiche alla struttura JSON o quando si desidera aggiungere un altro set di dati, tutto ciò che è necessario fare è apportare le modifiche solo in quel particolare file di classe anziché apportare modifiche in tutto il progetto. Ciò significa che il tuo metodo Main rimarrà lo stesso la maggior parte del tempo e le modifiche avverranno solo all'interno delle classi.
Eseguiamo il programma e creiamo il nostro file JSON con l'array.
Ora copia il contenuto e incolla Qui per convalidare se il JSON creato è valido o meno.
Clicca sul Convalida JSON pulsante per convalidarlo. Le coppie chiave-valore JSON verranno organizzate e la convalida verrà eseguita sul set di dati specificato.
Esecuzione di operazioni sui dati prima di assegnarli alle chiavi JSON
Supponiamo di avere alcuni dati e di voler eseguire alcune operazioni su tali dati prima di assegnarli come valori alle chiavi JSON.
In tal caso, come lo faremo?
Per esempio: Supponiamo che l'ID dipendente che abbiamo passato al JSON sia composto da due parti, le prime tre lettere denotano il codice di località e le ultime 4 cifre denotano il numero del dipendente. La concatenazione di entrambi ci darà l'ID dipendente di un dipendente.
Nel caso in cui riceviamo separatamente il codice della posizione e il numero del dipendente, dovremo concatenarli insieme per formare un ID dipendente. Solo allora possiamo passarlo attraverso il JSON.
Per superare questo tipo di scenari, è necessario eseguire operazioni sui dati prima di assegnarli a una chiave.
Diamo un'occhiata a come questo può essere fatto.
Torniamo alla nostra classe dei dipendenti e creiamo un'altra classe, all'interno della quale eseguiremo tutte le operazioni.
Qui creeremo un'altra classe per contenere ed eseguire le operazioni sui dati dei dipendenti.
Creiamo una nuova classe 'EmployeeData'.
La classe è stata creata e ora creiamo un metodo con specificatore di accesso pubblico e tipo restituito come la nostra classe 'Employee'. Abbiamo fornito il nome del metodo come 'EmployeeDataOps' . Tuttavia, puoi fornire il tuo nome. Per rendere tutto più semplice, non sto passando alcun parametro all'interno di questo metodo.
Poiché abbiamo descritto il tipo restituito come una classe, dovremo restituire un'istanza della classe Employee. Per fare ciò creeremo un oggetto classe all'interno del metodo.
Qui abbiamo creato un oggetto per la classe Employee con il nome EmpObj e alla fine del metodo, abbiamo restituito l'oggetto.
Definiamo due numeri interi all'interno della classe EmployeeData che rappresentano il codice di posizione completo e il numero del dipendente. Una volta dichiarato lo useremo per eseguire operazioni e quindi assegnare valori alle rispettive chiavi.
int locationCode = 569; int employeeNumber = 8523;
Ora, poiché abbiamo il codice di posizione e il numero del dipendente, possiamo eseguire operazioni su di essi per trovare l'ID del dipendente. Per fare ciò scriveremo un semplice codice per concatenare entrambi gli interi.
int empID = int.Parse(locationCode.ToString() + employeeNumber.ToString());
Questo concatenerà semplicemente entrambi gli interi che formano l'ID del dipendente. Abbiamo memorizzato l'ID del dipendente sotto la variabile 'EmpID' e ora passeremo questa variabile a 'EmployeeID' in EmpObj.
Employee EmpObj = new Employee(); EmpObj.employeeID = empID; return EmpObj;
L'intero codice di esempio apparirà come mostrato di seguito:
app per spiare il telefono Android
Hai notato che abbiamo rimosso il valore che avevamo assegnato in precedenza alla variabile EmployeeID nella classe Employee? Lo abbiamo fatto perché stiamo restituendo il valore da EmployeeDataOps () metodo. Quindi, i dati alle variabili verranno alimentati da questo metodo stesso. Ciò elimina la necessità di dichiarare direttamente i valori.
bilanciamento del carico router due connessioni Internet
Dato che abbiamo finito con il metodo ora, avremo bisogno di aggiungere un'istanza di questo metodo al metodo principale in modo che questo metodo possa essere chiamato.
Per fare ciò creeremo un altro oggetto classe nel metodo principale per 'EmployeeData' classe.
EmployeeData empData = new EmployeeData();
Dopo aver creato un oggetto classe, ora assegneremo il metodo all'interno di questa classe all'oggetto Emp che abbiamo creato in precedenza per la classe dipendente.
emp = empData.EmployeeDataOps();
Infine, il codice all'interno del metodo principale sarà simile a questo:
Mettiamo alcuni dati di prova:
Codice posizione = 123
Numero dipendente = 9874
Metteremo questi dati nel codice e con le modifiche finali nel metodo principale. Ora abbiamo completato il nostro codice. Ora, eseguiamo il codice e convalidiamo il nostro JSON.
Questo è il JSON che è stato creato:
Come puoi vedere, il nuovo valore concatenato per l'ID dipendente è stato inserito nel valore JSON.
Copiamo e incolliamo questo JSON Qui per convalidare la sua struttura. Metti il testo nel sito JSON lint.
Utilizzare il pulsante di convalida per convalidare la struttura come mostrato di seguito:
Creazione di una struttura JSON annidata
L'esempio che abbiamo discusso fino ad ora utilizza principalmente stringhe e valori numerici all'interno di un array o di un oggetto. Ma JSON può anche essere utilizzato per esprimere un intero oggetto JSON utilizzando la stessa nozione di un elemento array. I membri dell'oggetto all'interno dell'elenco possono utilizzare i propri oggetti e le chiavi dell'array.
In Introduzione a JSON, che è uno dei nostri tutorial precedenti, abbiamo dato una prima occhiata a come appare un JSON nidificato. In quel tutorial, presumiamo che anche il dipendente abbia un'auto e che anche il JSON contenga tutti i dettagli sull'auto del dipendente.
Quindi la struttura JSON che otteniamo alla fine sarà simile a questa:
Qui, abbiamo il JSON del dipendente con tutti i dati, quindi abbiamo anche un oggetto JSON Car annidato all'interno del JSON del dipendente. L'oggetto Car ha il proprio set di chiavi e valori.
Proviamo a creare questo JSON in modo programmatico.
Per questo, inizieremo con lo stesso JSON che abbiamo creato nel nostro tutorial precedente. Per semplificare creeremo il nuovo oggetto JSON (cioè Car JSON) in una nuova classe. Aggiungeremo una nuova auto di classe e aggiungeremo tutti gli oggetti all'interno di questa classe con uno specificatore di accesso pubblico.
Ora, possiamo aggiungere il valore direttamente qui o scrivere una nuova classe e creare un metodo personalizzato con un tipo di ritorno dell'oggetto classe per assegnare i valori simili a quello che abbiamo fatto nel tutorial precedente. Per comodità, assegneremo il valore direttamente alle variabili chiave.
Ora abbiamo creato una nuova classe con gli oggetti e i valori. Nel passaggio successivo, lo aggiungeremo alla struttura Employee JSON, in modo che quando si verifica la serializzazione JSON, anche i valori-chiave della classe Car dovrebbero essere serializzati insieme alla classe Employee come nidificato JSON.
Per fare ciò, in primo luogo, dovremo aggiungere un oggetto di tipo classe car nella classe Employee. Questo oggetto verrà utilizzato per memorizzare i valori presenti nella classe Car.
Come mostrato sopra, abbiamo assegnato la nuova variabile con il tipo di dati come Car class. Ora passiamo al metodo EmployeeDataOps () che abbiamo creato all'interno della classe EmployeeData. Scriveremo il codice per chiamare le variabili e i valori dalla classe Car.
Innanzitutto, creiamo un oggetto classe per la classe auto:
Car carObj = new Car();
Questo oggetto conterrà tutti i dati della classe auto. Dopo aver dichiarato tutti i dati della classe car in questo oggetto, il passo successivo sarà assegnare questi dati (dati contenuti all'interno dell'oggetto car) alla variabile car che abbiamo creato per contenere questi dati.
Per fare ciò, useremo semplicemente l'oggetto Employee che abbiamo creato per accedere alla variabile car. E poi possiamo assegnare direttamente l'oggetto car con i dati alla variabile car.
EmpObj.car = carObj;
Questo è tutto. Abbiamo creato una variabile in una classe, quindi creato un altro oggetto per accedere al valore da un'altra classe, quindi abbiamo assegnato il valore alla prima variabile.
Ora, eseguiamo il nostro programma e vediamo se è in grado di creare il JSON desiderato.
Come mostrato sopra, vediamo che è stata creata una chiave json per auto e contiene tutti i dati che abbiamo inserito nella classe Car come chiave e valori. Ora copieremo nuovamente il contenuto JSON e navigheremo Qui per convalidare il JSON.
Basta copiare tutto il contenuto JSON nell'area di testo e fare clic sul file 'Convalida JSON 'Pulsante.
Quindi, il sito JSONlint ha organizzato i nostri dati e li ha convalidati perfettamente. Possiamo vedere che l'oggetto 'car' è stato organizzato nella struttura JSON come richiesto. Utilizzando lo stesso processo, puoi creare più livelli di JSON nidificato. Continua ad aggiungere l'oggetto JSON alla classe e assegna il suo valore a una variabile di classe.
Come puoi vedere, non dobbiamo nemmeno modificare alcun codice nel nostro metodo principale.
Utilizzo di un foglio Excel come origine dati per JSON
Nei nostri tutorial precedenti, abbiamo discusso diversi modi per creare diverse strutture di JSON. Ma c'era un grosso problema con tutte le nostre strutture, abbiamo sempre codificato in modo rigido i valori per le chiavi.
In questo tutorial, discuteremo i modi attraverso i quali possiamo utilizzare un foglio Excel per fornire i dati alle chiavi JSON. Ti consiglierei di seguire tutti i tutorial di cui abbiamo discusso in precedenza prima di procedere con questo poiché discuteremo dello stesso codice che abbiamo scritto nei tutorial precedenti.
Andare passo dopo passo ti aiuterà a comprendere l'intero concetto in un modo migliore.
Spero che abbiate capito il codice di base per creare un JSON, in questa parte porteremo avanti la stessa struttura del codice.
Innanzitutto, creiamo un file Excel con dati JSON.
Abbiamo creato un file employeeData.xlsx con i seguenti dettagli.
Prima di iniziare a scrivere il codice per estrarre i valori da Excel, dovremo aggiungere un riferimento all'assembly al nostro progetto. Per accedere all'oggetto Office, C # ci offre Microsoft Office Interop. Questi sono molto utili per fornire un facile accesso agli oggetti dell'ufficio.
pl sql intervista domande e risposte pdf
Poiché stiamo usando Excel in questo progetto, useremo il riferimento all'assembly Excel di interoperabilità di Microsoft Office.
Per installarlo, fare clic con il pulsante destro del mouse su Riferimenti in Esplora soluzioni e quindi seleziona Gestisci pacchetti NuGet . Scrivi Microsoft Office Interop Excel nella barra di ricerca e il risultato della ricerca mostrerà il pacchetto richiesto.
Una volta ottenuto Microsoft Office Interop Excel, fare clic su Pulsante Installa per installarlo.
Al termine dell'installazione, è possibile vedere che Microsoft Office Interop Excel è stato aggiunto all'elenco dei riferimenti agli assembly nel progetto.
Per cominciare, assegniamo prima i diversi elementi di Excel.
Microsoft.Office.Interop.Excel.Application xlApp; Microsoft.Office.Interop.Excel.Workbook xlWorkBook; Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
Qui, abbiamo assegnato valori all'applicazione Excel, alla cartella di lavoro Excel e al foglio di lavoro Excel. Una volta definiti, li utilizzeremo nei nostri prossimi passaggi per accedere ai valori nel foglio Excel.
Quali sono i passaggi che generalmente seguiamo, se vogliamo recuperare un valore da un foglio Excel?
Innanzitutto, accediamo all'applicazione Excel, quindi apriamo la cartella di lavoro Excel e il foglio di lavoro Excel e successivamente individuiamo l'elemento in base ai valori di riga e colonna. Faremo qualcosa di simile qui.
Questo codice accederà all'applicazione Excel.
xlApp = new Microsoft.Office.Interop.Excel.Application();
Questo codice aprirà la cartella di lavoro con il nome specificato nella posizione specificata.
xlWorkBook = xlApp.Workbooks.Open(@'D:json employeeData.xlsx', 0, true, 5, '', '', true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, ' ', false, false, 0, true, 1, 0);
Ora scriveremo un codice per accedere al particolare foglio di lavoro all'interno della cartella di lavoro. Abbiamo un foglio di lavoro denominato 'Foglio1' (il nome predefinito nel foglio Excel)
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets('Sheet1');
Dato che abbiamo effettuato l'accesso al foglio di lavoro, ora il prossimo passo sarà trovare la colonna corretta e i dati corretti. Per prima cosa, cercheremo una colonna con la 'Chiave'.
Per esempio, Innanzitutto, cerchiamo la colonna con il valore 'FirstName'. Una volta trovato il valore, estrarremo il numero della colonna. Quindi, come sappiamo, la prima riga contiene l'intestazione e la seconda riga contiene i nostri dati, quindi utilizzeremo il numero di colonna e il numero di riga per estrarre i dati esatti.
Ciò memorizzerà il numero di colonna per il FirstName nella variabile.
var colmnVal = xlWorkSheet.Columns.Find('FirstName').Cells.Column;
Ora useremo il numero di colonna del FirstName per estrarre il valore dalla cella sottostante. Come sappiamo, il metodo value restituirà solo il tipo stringa, quindi lo memorizzeremo in una variabile stringa.
string frstName = xlWorkSheet.Cells(2, colmnVal).Text.ToString();
Ora, abbiamo il valore del nome memorizzato nella variabile. Quindi, useremo l'oggetto dipendente che abbiamo definito nel nostro metodo per assegnare il valore.
Rimuovi tutti i valori che hai assegnato / hardcoded nella classe Employee poiché restituiremo i valori utilizzando il nostro metodo.
Ma c'è un problema con questo, il '.Testo' la funzione restituisce sempre un valore stringa. Quindi, se vogliamo estrarre il valore di un ID dipendente che è un numero intero, verrà estratto anche come stringa. Quindi, dovremo convertire questa stringa in un numero intero prima di assegnarla all'oggetto JSON. Per fare ciò, analizzeremo direttamente il valore in un numero intero.
Quindi, il codice per EmployeeID apparirà come mostrato di seguito:
var colmnEmpID = xlWorkSheet.Columns.Find('employeeID').Cells.Column; string emplyID = xlWorkSheet.Cells(2, colmnEmpID).Text.ToString(); int emplyIDint = Int32.Parse(emplyID);
Alla fine, analizzeremo il valore della stringa in un numero intero poiché il nostro JSON riconosce l'ID dipendente come valore intero.
Quindi, il codice generale per il recupero dei dati per tutte e 4 le colonne apparirà come mostrato di seguito:
Ora, tutto ciò che dobbiamo fare è assegnare le variabili che abbiamo creato con i dati del foglio Excel agli oggetti dipendente.
Tutto è pronto, ora costruiremo il progetto. Una volta completata la compilazione, eseguiremo il programma per generare il JSON.
Verrà generato il seguente JSON:
Ora, confrontiamo i dati del JSON con quelli del foglio Excel.
Come mostrato sopra, i dati JSON corrispondono ai dati in tutte e 4 le colonne del foglio Excel. Convalidiamo il JSON che il nostro programma ha generato. Per farlo visiteremo di nuovo Qui . Basta copiare tutto il contenuto JSON nell'area di testo e fare clic sul file 'Convalida JSON' pulsante.
Evviva! Abbiamo creato un JSON valido utilizzando i dati di Excel.
Esercizio per te:
Crea un JSON nidificato a tre livelli. Crea una società JSON principale e annida il JSON del dipendente che abbiamo creato in precedenza insieme al JSON dell'auto.
Conclusione
Siamo giunti alla fine del nostro tutorial. È stato un lungo tutorial ma abbiamo imparato diverse cose. Abbiamo imparato come creare un semplice JSON utilizzando la programmazione c # e i vantaggi della categorizzazione di diversi set di dati JSON in una classe diversa. Abbiamo anche usato le nostre capacità di programmazione per aggiungere array e persino un'altra struttura JSON all'interno di un JSON genitore.
Infine, abbiamo lavorato sui modi per recuperare i dati da un'altra origine dati per fornire i valori alle chiavi JSON.
Spero che finora abbiate apprezzato l'intera serie di tutorial JSON.
Tutorial n. 4: Utilizzo di JSON per il test dell'interfaccia
Lettura consigliata
- Come creare oggetti JSON utilizzando il codice C # (Creazione JSON Parte 1)
- Principali domande e risposte per l'intervista JSON
- Utilizzo di JSON per il test dell'interfaccia
- Tutorial JSON: introduzione e guida completa per principianti
- Struttura dei dati della coda in C ++ con illustrazione
- MongoDB Crea backup del database
- Stack Struttura Dati In C ++ Con Illustrazione
- Struttura Dati Elenco Collegato Circolare In C ++ Con Illustrazione