how create json structure using c
Izrada JSON strukture (dio 2):
U našem prethodnom tutorialu raspravljali smo stvaranje jednostavne JSON datoteke pomoću primjera skupova podataka .
Također smo saznali detalje o korištenju json.Net okvira za serializaciju podataka u JSON formatu. Iskoristili smo C # i Visual Studio kako bismo stvorili jednostavnu konzolu za upotrebu podataka i vrijednosti ključeva koje smo pružili, a zatim smo te vrijednosti ključa serializirali u strukturu JSON. Sada, da vidimo što će ovaj vodič obrađivati dok idemo dalje.
U ovom uputstvu razgovarat ćemo o načinima stvaranja složenije JSON strukture. Stvorit ćemo nizove s više skupova podataka i istražiti načine za stvaranje ugniježđene strukture u JSON-u.
Većina JSON datoteka koje se koriste za prijenos podataka između različitih sustava sadrže složenije strukture podataka. Stoga će vam učenje o složenoj JSON strukturi pomoći u stvaranju testnih podataka na temelju zahtjeva JSON sheme.
Što ćete naučiti:
- Pisanje zakonika
- Dodavanje niza s više podataka u JSON
- Izvođenje operacija na podacima prije nego što ih dodijelite JSON tipkama
- Stvaranje ugniježđene JSON strukture
- Korištenje Excel lista kao izvora podataka za JSON
- Zaključak
- Preporučena literatura
Pisanje zakonika
U ovom uputstvu ćemo se pozvati na naš prethodni post. Stoga bih predložio svima da prije prođu kroz prethodni vodič, prije nego što nastave s ovim.
Upotrijebit ćemo iste JSON podatke koje smo koristili u našem prethodnom vodiču. Također ćemo se nadovezati na isti set koda koji smo napisali za naš prethodni JSON primjer.
Krenimo odmah. !!
Dodavanje niza s više podataka u JSON
Da bismo dodali niz u JSON, dodajmo ključ polja u naš prethodni skup podataka.
Naš skup podataka postat će kako je prikazano u nastavku:

Dodavanje objekta polja u JSON slično je dodavanju bilo kojih drugih vrijednosti ključa. Vrijednosti se mogu dodijeliti izravno u vrijeme deklaracije samog polja. Jednom kada su vrijednosti dodijeljene nizu, tada će JSON newtonsoft serializirati objekte u parove ključ / vrijednost.
Da bismo dodali Niz u JSON, deklarirat ćemo ga u 'Zaposlenik' sama klasa. (Pojedinosti potražite u našem prethodnom vodiču)
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' }; } } Kao što vidite, Array smo izravno proglasili u klasi Employee. Ne vršite nikakve promjene u glavnoj metodi. Stvaranje druge klase za JSON objekt pomoći će nam u održavanju objekata organiziranim.
Kad god dođe do promjena u strukturi JSON ili kada želite dodati još jedan skup podataka, sve što trebate jest izvršiti promjene samo u toj određenoj datoteci klase, a ne unositi promjene po cijelom projektu. To znači da će vaša glavna metoda ostati ista većinu vremena, a promjene će se dogoditi samo unutar klasa.
Izvršimo program i stvorimo našu JSON datoteku s nizom.

Sada kopirajte sadržaj i zalijepite ovdje za provjeru valjanosti stvorenog JSON-a valjanog ili ne.

Klikni na Potvrdite JSON gumb za potvrdu. Parovi ključ / vrijednost JSON bit će raspoređeni i provjera valjanosti izvršit će se na danom skupu podataka.

Izvođenje operacija na podacima prije nego što ih dodijelite JSON tipkama
Pretpostavimo da imamo neke podatke i želimo izvršiti neku operaciju nad tim podacima prije nego što ih dodijelimo kao vrijednosti JSON ključevima.
U takvom slučaju, kako ćemo to učiniti?
Na primjer: Recimo da je ID zaposlenika koji smo proslijedili u JSON sastavljen od dva dijela, prva tri slova označavaju pozivni broj, a posljednje 4 znamenke označavaju broj zaposlenika. Spajanjem oboje dobit ćemo ID zaposlenika.
U slučaju da kod za lokaciju i broj zaposlenika dobijemo odvojeno, morat ćemo ih zajedno povezati kako bismo oblikovali ID zaposlenika. Tek tada ga možemo proslijediti kroz JSON.
Da bismo prevladali ovu vrstu scenarija, moramo izvršiti operacije nad podacima prije nego što ih dodijelimo ključu.
Pogledajmo kako se to može učiniti.
Vratimo se našoj klasi zaposlenika i stvorimo drugu klasu unutar koje ćemo izvoditi sve operacije.
Ovdje ćemo stvoriti drugu klasu koja će sadržavati i izvoditi operacije nad podacima o zaposlenicima.
Stvorimo novu klasu 'EmployeeData'.

Klasa je stvorena, a sada izradimo metodu s javnim specifikatorom pristupa i tipom povratka kao naša klasa 'Zaposlenik'. Dali smo naziv metode kao “EmployeeDataOps” . Međutim, možete navesti svoje ime. Da bih to učinio jednostavnijim, ne prenosim nijedan parametar unutar ove metode.

Kako smo opisivali tip povratka kao klasu, morat ćemo vratiti instancu klase Employee. Da bismo to učinili, unutar metode ćemo stvoriti objekt klase.
Ovdje smo stvorili objekt za klasu Employee s imenom EmpObj i na kraju metode vratili smo objekt.

Definirajmo dvije cijele brojeve unutar klase EmployeeData koji predstavljaju puni kod lokacije i broj zaposlenika. Jednom proglašen, koristit ćemo ga za izvršavanje operacija, a zatim dodijeliti vrijednosti odgovarajućim tipkama.
int locationCode = 569; int employeeNumber = 8523;Sada, budući da imamo pozivni broj i broj zaposlenika, možemo nad njima izvršiti operacije pronalaska ID-a zaposlenika. Da bismo to učinili, napisat ćemo jednostavan kod za spajanje oba cijela broja.
int empID = int.Parse(locationCode.ToString() + employeeNumber.ToString());Ovo će jednostavno povezati obje cijele brojeve koji tvore ID zaposlenika. Spremili smo ID zaposlenika ispod varijable 'EmpID' , a sada ćemo ovu varijablu proslijediti na “workerID” u EmpObj.
Employee EmpObj = new Employee(); EmpObj.employeeID = empID; return EmpObj;Cijeli uzorak koda izgledat će kako je prikazano u nastavku:
vrsta ispitivanja u softverskom inženjerstvu

Jeste li primijetili da smo uklonili vrijednost koju smo ranije dodijelili varijabli workerID u klasi Employee? To smo učinili dok vraćamo vrijednost EmployeeDataOps () metoda. Stoga će se podaci o varijablama dovoditi iz same ove metode. Ovo uklanja potrebu za izravnim deklariranjem vrijednosti.
što je qa i qc u testiranju softvera
Kako smo sada završili s metodom, morat ćemo dodati instancu ove metode glavnoj metodi kako bi se ova metoda mogla pozvati.
Da bismo to učinili, stvorit ćemo još jedan objekt klase u glavnoj metodi za 'Podaci zaposlenika' razred.
EmployeeData empData = new EmployeeData();Nakon što smo kreirali objekt klase, sada ćemo metodu unutar ove klase dodijeliti objektu Emp koji smo ranije kreirali za klasu zaposlenika.
emp = empData.EmployeeDataOps();Napokon, kôd unutar glavne metode izgledat će ovako:

Stavimo neke testne podatke:
Lokacijski broj = 123
Broj zaposlenika = 9874
Te ćemo podatke staviti u kod i sa konačnim promjenama glavne metode. Sad smo dovršili naš kod. Sada, pustimo kôd i provjerimo svoj JSON.
Ovo je JSON koji je stvoren:
Kao što vidite, nova spojena vrijednost za ID zaposlenika unesena je u vrijednost JSON.

Kopirajmo i zalijepimo ovaj JSON ovdje da potvrdi njegovu strukturu. Stavite tekst na JSON web mjesto.
Upotrijebite gumb za provjeru da biste provjerili strukturu kako je prikazano dolje:

Stvaranje ugniježđene JSON strukture
Primjer koji smo do sada raspravljali koristi uglavnom niz i numeričke vrijednosti unutar polja ili objekta. Ali JSON se također može koristiti za izražavanje cijelog JSON objekta korištenjem istog pojma kao elementa niza. Članovi objekta na popisu mogu koristiti vlastite objekte i tipke polja.
U Uvodu u JSON, koji je jedan od naših ranijih vodiča, prvi smo put pogledali kako izgleda ugniježđeni JSON. U tom uputstvu pretpostavljamo da zaposlenik također ima automobil, a JSON također treba sadržavati sve detalje o zaposleničkom automobilu.
Dakle, JSON struktura koju ćemo dobiti na kraju bit će slična ovoj:

Ovdje imamo zaposlenika JSON sa svim podacima, a zatim imamo i automobil JSON objekt ugniježđen unutar zaposlenika JSON. Objekt automobila ima vlastiti set ključeva i vrijednosti.
Pokušajmo ovaj JSON stvoriti programski.
Za to ćemo započeti sa istim JSON-om koji smo stvorili u našem prethodnom vodiču. Da bismo ga olakšali, stvorit ćemo novi JSON objekt (tj. Car JSON) u novoj klasi. Dodat ćemo automobil nove klase i dodat ćemo sve objekte unutar te klase s javnim specifikatorom pristupa.

Sada vrijednost možemo dodati izravno ovdje ili možemo napisati novu klasu i stvoriti prilagođenu metodu s tipom povratka objekta klase za dodjeljivanje vrijednosti sličnih onome što smo radili u prethodnom vodiču. Radi praktičnosti vrijednost ćemo dodijeliti izravno ključnim varijablama.

Sada smo stvorili novu klasu s objektima i vrijednostima. U sljedećem ćemo koraku dodati ovo JSON strukturi zaposlenika, tako da kada se dogodi JSON serializacija, ključevi / vrijednosti iz klase Car također bi trebali dobiti serializaciju zajedno s klasom zaposlenika kao ugniježđena JSON.
Da bismo to učinili, prvo ćemo morati dodati objekt klase tipa klase u klasu Employee. Ovaj će se objekt koristiti za pohranu vrijednosti prisutnih u klasi Car.

Kao što je gore prikazano, novu smo varijablu s tipom podataka dodijelili klasi automobila. Idemo sada na metodu EmployeeDataOps () koju smo kreirali unutar klase EmployeeData. Napisat ćemo kod za pozivanje varijabli i vrijednosti iz klase Car.
Prvo, izradimo objekt klase za klasu automobila:
Car carObj = new Car();Ovaj će objekt sadržavati sve podatke iz klase automobila. Nakon što deklariramo sve podatke iz klase automobila u ovaj objekt, sljedeći će korak biti dodijeljivanje tih podataka (podataka koji se nalaze u automobilskom objektu) varijabli automobila koju smo stvorili za držanje tih podataka.
Da bismo to učinili, jednostavno ćemo upotrijebiti objekt Employee koji smo stvorili za pristup varijabli automobila. A zatim možemo izravno dodijeliti objekt automobila s podacima varijabli automobila.
EmpObj.car = carObj;To je to. Stvorili smo varijablu u jednoj klasi, zatim stvorili drugi objekt za pristup vrijednosti iz druge klase, a zatim smo vrijednost dodijelili prvoj varijabli.
Pokrenimo sada naš program i provjerimo može li stvoriti željeni JSON.

Kao što je gore prikazano, vidimo da je stvoren car json ključ i on sadrži sve podatke koje smo kao ključ i vrijednosti unijeli u klasu Car. Sada ćemo opet kopirati JSON sadržaj i kretati se ovdje za provjeru valjanosti JSON-a.
Samo kopirajte sav JSON sadržaj u područje za tekst i kliknite na “Potvrdite JSON ' dugme.

Dakle, web mjesto JSONlint organiziralo je naše podatke i savršeno ih provjerilo. Vidimo da je objekt 'automobil' uređen u JSON strukturi kako smo tražili. Korištenjem istog postupka možete stvoriti više razina ugniježđenih JSON-a. Samo nastavite dodavati JSON objekt u klasu i dodijelite njegovu vrijednost varijabli klase.
Kao što vidite, čak ni ne moramo mijenjati bilo koji kod u našoj glavnoj metodi.
Korištenje Excel lista kao izvora podataka za JSON
U našim prethodnim vodičima razgovarali smo o nekoliko načina za stvaranje različitih struktura JSON-a. Ali postojao je veliki problem sa svim našim strukturama, uvijek smo teško kodirali vrijednosti ključeva.
U ovom uputstvu razgovarat ćemo o načinima na koje možemo koristiti excel list za unos podataka u JSON tipke. Preporučio bih vam da prođete kroz sve vodiče o kojima smo ranije razgovarali prije nego što nastavite s ovim, jer ćemo raspravljati o istom kodu koji smo napisali u prethodnim vodičima.
Prelazak na korak po korak pomoći će vam u boljem razumijevanju cijelog koncepta.
Nadam se da ste razumjeli osnovni kôd za stvaranje JSON-a, u ovom ćemo dijelu iznijeti istu strukturu koda.
Prvo stvorimo excel datoteku s JSON podacima.
Stvorili smo datoteku workerData.xlsx sa sljedećim pojedinostima.

Prije nego započnemo s pisanjem koda za izdvajanje vrijednosti iz excela, morat ćemo dodati referencu sklopa našem projektu. Za pristup uredskom objektu, C # nam nudi Microsoft Office Interop. Oni su vrlo korisni u pružanju lakog pristupa uredskim objektima.
najbolji programi za oporavak izbrisanih datoteka
Kako u ovom projektu koristimo Excel, koristit ćemo referencu sklopa Microsoft Office Interop Excel.
Da biste ga instalirali, desni klik na Reference u vašem istraživaču rješenja, a zatim odaberite Upravljanje NuGet paketima . U traku za pretraživanje napišite Microsoft Office Interop Excel i rezultat pretraživanja prikazat će traženi paket.
Kada dobijete Microsoft Office Interop Excel, kliknite na Gumb za instalaciju da ga instalirate.

Kada je instalacija završena, možete vidjeti da je Microsoft Office Interop Excel dodan na popis referenci o montaži u projektu.

Za početak prvo dodijelimo različite elemente excela.
Microsoft.Office.Interop.Excel.Application xlApp; Microsoft.Office.Interop.Excel.Workbook xlWorkBook; Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;Ovdje smo dodijelili vrijednosti aplikaciji Excel, radnoj knjizi Excel i radnom listu Excel. Nakon što se definiraju, koristit ćemo ih u sljedećim koracima za pristup vrijednostima u excel listu.
Koji smo koraci koje obično slijedimo ako želimo dohvatiti vrijednost s excel lista?
Prvo pristupamo excel aplikaciji, zatim otvaramo excel radnu knjigu i excel radni list, a kasnije lociramo element na temelju vrijednosti redaka i stupaca. Učinit ćemo nešto slično ovdje.
Ovaj će kôd pristupiti excel aplikaciji.
xlApp = new Microsoft.Office.Interop.Excel.Application();Ovaj će kôd otvoriti radnu knjižicu s navedenim imenom na datom mjestu.
xlWorkBook = xlApp.Workbooks.Open(@'D:json employeeData.xlsx', 0, true, 5, '', '', true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, ' ', false, false, 0, true, 1, 0);Sada ćemo napisati kod za pristup određenom radnom listu unutar radne knjige. Imamo radni list pod nazivom 'Sheet1' (zadani naziv u excel listu)
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets('Sheet1');Kako smo pristupili radnom listu, sljedeći će korak biti pronalazak ispravnog stupca i točnih podataka. Prvo ćemo potražiti stupac s 'Ključem'.
Na primjer, Prvo, potražimo stupac s vrijednošću kao 'Ime'. Nakon što pronađemo vrijednost, izvući ćemo broj stupca. Tada, kako znamo, prvi redak sadrži naslov, a drugi redak sadrži naše podatke, pa ćemo za izdvajanje točnih podataka koristiti broj stupca i broj retka.
To će pohraniti broj stupca za FirstName u varijablu.
var colmnVal = xlWorkSheet.Columns.Find('FirstName').Cells.Column;Sada ćemo upotrijebiti broj stupca FirstName za izdvajanje vrijednosti iz ćelije ispod njega. Kao što znamo, metoda vrijednosti vratit će samo vrstu niza, pa ćemo je pohraniti u varijablu niza.
string frstName = xlWorkSheet.Cells(2, colmnVal).Text.ToString();Sad imamo vrijednost Imena sačuvanu u varijabli. Dakle, koristit ćemo objekt zaposlenika koji smo definirali u našoj metodi za dodjeljivanje vrijednosti.
Uklonite sve vrijednosti koje ste dodijelili / čvrsto kodirali u klasi Employee jer ćemo vrijednosti vraćati pomoću naše metode.
Ali postoji jedan problem s tim, '.Tekst' funkcija uvijek vraća vrijednost niza. Dakle, ako želimo izvući vrijednost ID-a zaposlenika koja je cijeli broj, ona će se također izvući kao niz. Dakle, morat ćemo pretvoriti ovaj niz u cijeli broj prije nego što ga dodijelimo JSON objektu. Da bismo to učinili, vrijednost ćemo izravno raščlaniti na cijeli broj.
Dakle, kôd za id zaposlenika izgledat će kao što je prikazano u nastavku:
var colmnEmpID = xlWorkSheet.Columns.Find('employeeID').Cells.Column; string emplyID = xlWorkSheet.Cells(2, colmnEmpID).Text.ToString(); int emplyIDint = Int32.Parse(emplyID);Na kraju ćemo raščlaniti vrijednost niza na cijeli broj jer naš JSON prepoznaje ID zaposlenika kao cijelu vrijednost.
Dakle, cjelokupni kod za dohvaćanje podataka za sva 4 stupca izgledat će kao što je prikazano u nastavku:

Sada sve što trebamo učiniti jest dodijeliti varijable koje smo stvorili s podacima s excel lista objektima zaposlenika.

Sve je postavljeno, sada ćemo graditi projekt. Nakon završetka gradnje izvršit ćemo program za generiranje JSON-a.
Generirat će se sljedeći JSON:

Usporedimo sada podatke iz JSON-a s onima u excel listu.

Kao što je gore prikazano, JSON podaci odgovaraju podacima u sva 4 stupca excel lista. Provjerimo JSON koji je generirao naš program. Da bismo to učinili, posjetit ćemo ponovo ovdje . Samo kopirajte sav JSON sadržaj u područje za tekst i kliknite na “Provjeri JSON” dugme.

Ura! Stvorili smo valjani JSON koristeći podatke iz excela.
Vježba za vas:
Stvorite ugniježđeni JSON na tri razine. Stvorite nadređenu JSON tvrtku i ugnijezdite zaposlenika JSON koji smo ranije stvorili zajedno s automobilom JSON.
Zaključak
Sada smo došli do kraja našeg tutorijala. To je dugo podučavanje, ali naučili smo nekoliko stvari. Naučili smo kako stvoriti jednostavan JSON pomoću programiranja c # i prednosti kategorizacije različitih skupova JSON podataka u drugu klasu. Također smo koristili naše vještine programiranja za dodavanje nizova, pa čak i druge JSON strukture unutar nadređenog JSON-a.
Na kraju, radili smo na načinima za dohvaćanje podataka iz drugog izvora podataka za unos vrijednosti u JSON ključeve.
Nadam se da ste svi do sada uživali u cijeloj seriji JSON tutorijala.
Vodič br. 4: Korištenje JSON-a za ispitivanje sučelja
Preporučena literatura
- Kako stvoriti JSON objekte pomoću C # koda (JSON Creation Part 1)
- Najčešća pitanja i odgovori za JSON intervjue
- Korištenje JSON-a za ispitivanje sučelja
- Vodič za JSON: Uvod i cjelovit vodič za početnike
- Struktura podataka u redu čekanja u C ++ s ilustracijom
- MongoDB Stvori sigurnosnu kopiju baze podataka
- Složite strukturu podataka u C ++ s ilustracijom
- Struktura podataka kružnog povezanog popisa na C ++ s ilustracijom