how create json structure using c
Ustvarjanje strukture JSON (2. del):
V prejšnji vaji smo razpravljali ustvarjanje preproste datoteke JSON z vzorčnimi nabori podatkov .
Spoznali smo tudi podrobnosti o uporabi ogrodja json.Net za serializacijo podatkov v format JSON. C # in Visual Studio smo izkoristili za ustvarjanje preproste konzole za uporabo podatkov in vrednosti ključev, ki smo jih zagotovili, nato pa te vrednosti ključev serializirali v strukturo JSON. Zdaj pa poglejmo, kaj bo ta vadnica pokrivala, ko bomo napredovali.
V tej vadnici bomo razpravljali o načinih za ustvarjanje bolj zapletene strukture JSON. Ustvarili bomo polja z več nabori podatkov in preučili tudi načine za ustvarjanje ugnezdene strukture v JSON.
Večina datotek JSON, ki se uporabljajo za prenos podatkov med različnimi sistemi, vsebuje bolj zapletene podatkovne strukture. S tem vam bo učenje o zapleteni strukturi JSON pomagalo pri ustvarjanju testnih podatkov na podlagi zahtev sheme JSON.
Kaj se boste naučili:
- Pisanje kodeksa
- Dodajanje matrike z več podatki v JSON
- Izvedba operacij s podatki, preden jih dodelite tipkam JSON
- Ustvarjanje ugnezdene strukture JSON
- Uporaba Excelovega lista kot vira podatkov za JSON
- Zaključek
- Priporočeno branje
Pisanje kodeksa
V tej vadnici se bomo sklicevali na naš prejšnji prispevek. Zato bi predlagal vsem, da najprej preidejo na prejšnjo vadnico, preden nadaljujejo s tem.
Uporabili bomo iste podatke JSON, kot smo jih uporabili v prejšnji vadnici. Nadaljevali bomo tudi z isto kodo, ki smo jo napisali za prejšnji primer JSON.
Začnimo zdaj. !!
Dodajanje matrike z več podatki v JSON
Če želite dodati matriko v JSON, v prejšnji nabor podatkov dodajte matrični ključ.
Naš nabor podatkov bo postal, kot je prikazano spodaj:
Dodajanje predmeta matrike v JSON je podobno dodajanju drugih vrednosti ključev. Vrednosti je mogoče dodeliti neposredno ob deklaraciji same matrike. Ko so vrednosti dodeljene matriki, bo JSON newtonsoft predmete serializiral v pare ključ-vrednost.
Če želimo dodati matriko v JSON, jo bomo razglasili v 'Zaposlen' razred sam. (Za podrobnosti glejte našo prejšnjo vadnico)
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' }; } }
Kot lahko vidite, smo Array neposredno razglasili v razredu Employee. Ne spreminjajte glavne metode. Ustvarjanje drugega razreda za objekt JSON nam bo pomagalo pri ohranjanju organiziranosti predmetov.
Kadar pride do sprememb v strukturi JSON ali kadar želite dodati še en nabor podatkov, morate samo spremeniti to določeno datoteko razreda in ne spreminjati celotnega projekta. To pomeni, da bo vaša glavna metoda večino časa ostala nespremenjena, spremembe pa se bodo zgodile samo znotraj razredov.
Izvedimo program in z matriko ustvarimo datoteko JSON.
Zdaj kopirajte vsebino in prilepite tukaj preveriti, ali je ustvarjeni JSON veljaven ali ne.
Kliknite na Preverite JSON gumb za potrditev. Parovi ključ / vrednost JSON bodo razporejeni in validacija bo izvedena na danem naboru podatkov.
Izvedba operacij s podatki, preden jih dodelite tipkam JSON
Predpostavimo, da imamo nekaj podatkov in želimo izvesti nekaj postopkov nad temi podatki, preden jih dodelijo kot vrednosti tipkam JSON.
Kako bomo v takem primeru to storili?
Na primer: Recimo, da je ID zaposlenega, ki smo ga posredovali v JSON, sestavljen iz dveh delov, prve tri črke označujejo lokacijsko kodo, zadnje 4 številke pa številko zaposlenega. Združevanje obeh nam bo dalo ID zaposlenega.
Če prejmemo Lokacijsko kodo in Številko zaposlenega ločeno, jih bomo morali združiti, da bomo oblikovali ID zaposlenega. Šele nato ga lahko prenesemo skozi JSON.
Da bi premagali tovrstne scenarije, moramo opraviti operacije s podatki, preden jih dodelimo ključu.
Oglejmo si, kako je to mogoče storiti.
Vrnimo se k razredu zaposlenih in ustvarite nov razred, znotraj katerega bomo izvedli vse operacije.
Tu bomo ustvarili nov razred, ki bo vseboval in izvajal operacije s podatki o zaposlenih.
Ustvarimo nov razred 'EmployeeData'.
Predavanje je bilo ustvarjeno, zdaj pa ustvarimo metodo z javnim specifikatorjem dostopa in vrnjeno vrsto kot naš razred »Zaposleni«. Ime metode smo navedli kot “EmployeeDataOps” . Lahko pa navedete svoje ime. Da bi to poenostavili, v tej metodi ne posredujem nobenega parametra.
Ko smo vrsto vračila opisali kot razred, bomo morali vrniti primerek razreda Employee. Za to bomo znotraj metode ustvarili predmet razreda.
Tu smo ustvarili objekt za razred Employee z imenom EmpObj in na koncu metode smo vrnili objekt.
Določimo dve celi števili znotraj razreda EmployeeData, ki predstavljata celotno lokacijsko kodo in številko zaposlenega. Ko bo razglašen, ga bomo uporabili za izvajanje operacij in nato dodelili vrednosti ustreznim tipkam.
int locationCode = 569; int employeeNumber = 8523;
Zdaj, ko imamo lokacijsko kodo in številko zaposlenega, lahko nad njimi izvajamo operacije iskanja ID-ja zaposlenega. Da bi to naredili, bomo napisali preprosto kodo za združitev obeh celih števil.
int empID = int.Parse(locationCode.ToString() + employeeNumber.ToString());
To bo preprosto povezalo obe celi števili, ki tvorita ID zaposlenega. Pod spremenljivko smo shranili ID zaposlenega »EmpID« , in zdaj bomo to spremenljivko predali “workerID” v EmpObj.
Employee EmpObj = new Employee(); EmpObj.employeeID = empID; return EmpObj;
Celotna vzorčna koda bo videti, kot je prikazano spodaj:
c ++ izvedba dvojno povezanega seznama
Ste opazili, da smo v razredu Employee odstranili vrednost, ki smo jo prej dodelili spremenljivki workerID? To smo storili, ko vračamo vrednost iz EmployeeDataOps () metoda. Zato se bodo podatki o spremenljivkah napajali iz same metode. To odpravlja potrebo po neposrednem prijavljanju vrednosti.
vadnica za Microsoft Dynamics Axe 2012 za začetnike
Ko smo zdaj končali z metodo, bomo morali glavni primer dodati primerek te metode, da jo bomo lahko poklicali.
Če želite to narediti, bomo v glavni metodi za “EmployeeData” razred.
EmployeeData empData = new EmployeeData();
Ko smo ustvarili objekt razreda, bomo zdaj metodo znotraj tega razreda dodelili objektu Emp, ki smo ga prej ustvarili za razred zaposlenega.
emp = empData.EmployeeDataOps();
Končno bo koda znotraj glavne metode podobna tej:
Vstavimo nekaj testnih podatkov:
Lokacijska koda = 123
Število zaposlenih = 9874
Te podatke bomo vnesli v kodo in s končnimi spremembami glavne metode. Zdaj smo izpolnili našo kodo. Zdaj pa zaženimo kodo in preverimo svoj JSON.
To je JSON, ki je bil ustvarjen:
Kot lahko vidite, je bila nova združena vrednost za ID zaposlenega vnesena v vrednost JSON.
Kopirajmo in prilepite ta JSON tukaj za potrditev njegove strukture. Besedilo vstavite na spletno mesto JSON lint.
Uporabite gumb za preverjanje, da preverite strukturo, kot je prikazano spodaj:
Ustvarjanje ugnezdene strukture JSON
Primer, ki smo ga obravnavali do zdaj, uporablja predvsem niz in številske vrednosti znotraj polja ali predmeta. Toda JSON lahko uporabimo tudi za izražanje celotnega predmeta JSON z uporabo istega pojma kot elementa polja. Člani predmetov na seznamu lahko uporabljajo lastne predmete in matrične tipke.
V Uvodu v JSON, ki je ena od naših prejšnjih vaj, smo si najprej ogledali, kako izgleda ugnezdeni JSON. V tej vadnici predpostavljamo, da ima zaposleni tudi avtomobil, JSON pa mora vsebovati tudi vse podrobnosti o zaposlenem avtomobilu.
Struktura JSON, ki jo dobimo na koncu, bo podobna tej:
Tu imamo zaposlenega JSON z vsemi podatki, nato pa imamo tudi objekt Car JSON, ugnezden znotraj zaposlenega JSON. Predmet avtomobila ima svoj nabor ključev in vrednosti.
Poskusimo ustvariti ta JSON programsko.
Za to bomo začeli z istim JSON-om, ki smo ga ustvarili v prejšnji vadnici. Za lažje ustvarjanje novega predmeta JSON (tj. Car JSON) v novem razredu. Dodali bomo nov razred avtomobila in z objektom za javni dostop dodali vse predmete v tem razredu.
Zdaj lahko vrednost dodamo neposredno sem ali pa napišemo nov razred in ustvarimo metodo po meri s tipom vrnjenega predmeta razreda, da dodelimo vrednosti, podobne tistim v prejšnji vadnici. Zaradi udobja bomo vrednost dodelili neposredno ključnim spremenljivkam.
Zdaj smo ustvarili nov razred s predmeti in vrednostmi. V naslednjem koraku bomo to dodali v strukturo Employee JSON, tako da bodo, ko se zgodi serializacija JSON, tudi ključi-vrednosti iz razreda Car dobili serializacijo skupaj z razredom zaposlenih kot ugnezdena JSON.
Da bi to storili, moramo najprej dodati predmetni avto razreda razreda v razred Employee. Ta predmet bo uporabljen za shranjevanje vrednosti, prisotnih v razredu Car.
Kot je prikazano zgoraj, smo novo spremenljivko s podatkovnim tipom dodelili kot razred avtomobila. Zdaj pa pojdimo na metodo EmployeeDataOps (), ki smo jo ustvarili znotraj razreda EmployeeData. Kodo bomo napisali za klic spremenljivk in vrednosti iz razreda Car.
Najprej ustvarimo predmet razreda za razred avtomobila:
Car carObj = new Car();
Ta predmet bo vseboval vse podatke iz razreda avtomobilov. Ko smo v ta objekt prijavili vse podatke iz razreda avtomobila, bo naslednji korak dodelitev teh podatkov (podatki, ki se nahajajo znotraj predmeta avtomobila) spremenljivki avtomobila, ki smo jo ustvarili za hrambo teh podatkov.
Da bi to naredili, bomo preprosto uporabili objekt Employee, ki smo ga ustvarili, za dostop do spremenljivke avtomobila. Nato lahko avtomobilski objekt s podatki neposredno dodelimo spremenljivki avtomobila.
EmpObj.car = carObj;
To je to. Ustvarili smo spremenljivko v enem razredu, nato pa še en objekt za dostop do vrednosti iz drugega razreda, nato smo vrednost dodelili prvi spremenljivki.
Zdaj pa zaženimo naš program in preverimo, ali lahko ustvari želeni JSON.
Kot je prikazano zgoraj, vidimo, da je bil ustvarjen ključ car json in vsebuje vse podatke, ki smo jih vnesli v razred Car kot ključ in vrednosti. Zdaj bomo znova kopirali vsebino JSON in krmarili tukaj za potrditev JSON.
Preprosto kopirajte vso vsebino JSON v besedilno območje in kliknite na “Preverite JSON '.
Spletno mesto JSONlint je torej uredilo naše podatke in jih popolnoma potrdilo. Vidimo, da je bil objekt 'car' urejen v strukturi JSON, kot smo zahtevali. Z istim postopkom lahko ustvarite več ravni ugnezdenih JSON. Samo nadaljujte z dodajanjem predmeta JSON razredu in dodelite njegovo vrednost spremenljivki razreda.
Kot lahko vidite, nam ni treba spremeniti nobene kode v naši glavni metodi.
Uporaba Excelovega lista kot vira podatkov za JSON
V naših prejšnjih vajah smo razpravljali o več načinih za ustvarjanje različnih struktur JSON-a. Toda pri vseh naših strukturah je bila velika težava, vrednosti ključev smo vedno težko kodirali.
V tej vadnici bomo razpravljali o načinih, s katerimi lahko uporabimo excel list za podajanje podatkov v tipke JSON. Preden nadaljujete s tem, vam priporočam, da preberete vse vaje, o katerih smo že govorili, saj bomo razpravljali o isti kodi, ki smo jo zapisali v prejšnjih vajah.
Korak za korakom vam bo pomagal bolje razumeti celoten koncept.
Upam, da ste razumeli osnovno kodo za ustvarjanje JSON-a, v tem delu bomo nadaljevali z isto strukturo kode.
Najprej ustvarimo datoteko excel s podatki JSON.
Ustvarili smo datoteko workerData.xlsx z naslednjimi podrobnostmi.
Preden začnemo pisati kodo za pridobivanje vrednosti iz excela, bomo morali našemu projektu dodati sklic na sklop. Za dostop do pisarniškega predmeta nam C # ponuja Microsoft Office Interop. Ti so v veliko pomoč pri enostavnem dostopu do pisarniških predmetov.
vzorčni testni primeri za spletno aplikacijo
Ker v tem projektu uporabljamo excel, bomo uporabili referenco sklopa Microsoft Office Interop Excel.
Če ga želite namestiti, z desno miškino tipko kliknite Reference v raziskovalcu rešitev in nato izberite Upravljanje paketov NuGet . V iskalno vrstico zapišite Microsoft Office Interop Excel in rezultat iskanja bo prikazal zahtevani paket.
Ko dobite Microsoft Office Interop Excel, kliknite na Gumb za namestitev da ga namestite.
Ko je namestitev končana, lahko vidite, da je bil Microsoft Office Interop Excel dodan na seznam referenc za sestavljanje v projektu.
Za začetek najprej določimo različne elemente excel.
Microsoft.Office.Interop.Excel.Application xlApp; Microsoft.Office.Interop.Excel.Workbook xlWorkBook; Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
Tu smo aplikaciji Excel, delovnemu zvezku excel in delovnemu listu Excel dodelili vrednosti. Ko so te definirane, jih bomo uporabili v naslednjih korakih za dostop do vrednosti v Excelovem listu.
Katere korake običajno sledimo, če želimo pridobiti vrednost z Excelovega lista?
Najprej odpremo aplikacijo excel, nato odpremo Excelov delovni zvezek in Excelov delovni list, kasneje pa poiščemo element na podlagi vrednosti vrstic in stolpcev. Nekaj podobnega bomo naredili tudi tukaj.
Ta koda bo dostopala do aplikacije excel.
xlApp = new Microsoft.Office.Interop.Excel.Application();
Ta koda bo odprla delovni zvezek z navedenim imenom, ki je prisoten na določeni lokaciji.
xlWorkBook = xlApp.Workbooks.Open(@'D:json employeeData.xlsx', 0, true, 5, '', '', true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, ' ', false, false, 0, true, 1, 0);
Zdaj bomo napisali kodo za dostop do določenega delovnega lista znotraj delovnega zvezka. Imamo delovni list z imenom »Sheet1« (privzeto ime na Excelovem listu)
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets('Sheet1');
Ker smo dostopali do delovnega lista, bo naslednji korak iskanje pravilnega stolpca in pravilnih podatkov. Najprej bomo poiskali stolpec s ključem.
Na primer, Najprej poiščimo stolpec z vrednostjo »FirstName«. Ko bomo našli vrednost, bomo izvlekli številko stolpca. Potem, ko vemo, da prva vrstica vsebuje naslov, druga vrstica pa naše podatke, bomo za izločanje natančnih podatkov uporabili številko stolpca in številko vrstice.
To bo v spremenljivko shranilo številko stolpca za FirstName.
var colmnVal = xlWorkSheet.Columns.Find('FirstName').Cells.Column;
Zdaj bomo s številko stolpca FirstName izvlekli vrednost iz celice pod njim. Kot vemo, bo metoda vrednosti vrnila samo vrsto niza, zato jo bomo shranili v spremenljivko niza.
string frstName = xlWorkSheet.Cells(2, colmnVal).Text.ToString();
Zdaj imamo v spremenljivki shranjeno vrednost First Name. Torej bomo za dodelitev vrednosti uporabili objekt zaposlenega, ki smo ga definirali v naši metodi.
Odstranite vse vrednosti, ki ste jih dodelili / trdo kodirali v razredu Employee, saj bomo vrednosti vrnili po naši metodi.
Toda s tem obstaja eno vprašanje, '.Besedilo' funkcija vedno vrne vrednost niza. Torej, če želimo izvleči vrednost ID-ja zaposlenega, ki je celo število, bo tudi izvlečena kot niz. Torej bomo morali ta niz pretvoriti v celo število, preden ga bomo dodelili objektu JSON. V ta namen bomo vrednost neposredno razčlenili na celo število.
Torej, koda za workerID bo videti, kot je prikazano spodaj:
var colmnEmpID = xlWorkSheet.Columns.Find('employeeID').Cells.Column; string emplyID = xlWorkSheet.Cells(2, colmnEmpID).Text.ToString(); int emplyIDint = Int32.Parse(emplyID);
Na koncu bomo vrednost niza razčlenili na celo število, saj naš JSON prepozna ID zaposlenega kot celoštevilsko vrednost.
Tako bo celotna koda za pridobivanje podatkov za vse 4 stolpce videti spodaj:
Zdaj moramo vse spremenljivke, ki smo jih ustvarili s podatki iz Excelovega lista, dodeliti zaposlenim objektom.
Vse je postavljeno, zdaj bomo zgradili projekt. Po končani gradnji bomo izvedli program za generiranje JSON-a.
Ustvaril se bo naslednji JSON:
Zdaj primerjajmo podatke iz JSON-a s tistimi v Excelovem listu.
Kot je prikazano zgoraj, se podatki JSON ujemajo s podatki v vseh 4 stolpcih lista excel. Potrdimo JSON, ki ga je ustvaril naš program. Za to bomo spet obiskali tukaj . Preprosto kopirajte vso vsebino JSON v besedilno območje in kliknite na »Preveri JSON« .
Hura! Z uporabo podatkov iz excela smo ustvarili veljaven JSON.
Vadba za vas:
Ustvarite tristopenjski ugnezdeni JSON. Ustvarite nadrejeno podjetje JSON in ugnezdi zaposlenega JSON, ki smo ga prej ustvarili skupaj z avtomobilom JSON.
Zaključek
Zdaj smo prišli do konca naše vaje. Bila je dolga vadnica, vendar smo se naučili več stvari. Naučili smo se, kako ustvariti preprost JSON s pomočjo programiranja c # in prednosti kategorizacije različnih naborov podatkov JSON v drug razred. S svojimi programskimi sposobnostmi smo uporabili tudi polja in celo drugo strukturo JSON znotraj nadrejenega JSON-a.
Nazadnje smo delali na načinih za pridobivanje podatkov iz drugega vira podatkov za podajanje vrednosti v ključe JSON.
Upam, da ste do zdaj uživali v celotni seriji vadnic JSON.
Vadnica # 4: Uporaba JSON za preskušanje vmesnikov
Priporočeno branje
- Kako ustvariti predmete JSON s pomočjo kode C # (del ustvarjanja JSON 1. del)
- Najpogostejša vprašanja in odgovori za JSON
- Uporaba JSON za preskušanje vmesnikov
- Vadnica za JSON: Uvod in popoln vodnik za začetnike
- Struktura podatkov čakalne vrste v jeziku C ++ z ilustracijo
- MongoDB Ustvari varnostno kopijo baze podatkov
- Struktura podatkov skladov v jeziku C ++ z ilustracijo
- Struktura podatkov krožnega povezanega seznama v jeziku C ++ z ilustracijo