how create json structure using c
Oprettelse af JSON-struktur (del 2):
I vores tidligere tutorial diskuterede vi oprettelse af en simpel JSON-fil ved hjælp af eksempeldatasæt .
Vi lærte også detaljerne om brugen af en json.Net-ramme til serialisering af data til JSON-format. Vi udnyttede C # og Visual Studio til at oprette en simpel konsolapplikation til at bruge data og nøgleværdier, der blev leveret af os, og derefter serierede disse nøgleværdier i JSON-struktur. Lad os nu se, hvad denne vejledning vil dække, når vi går videre.
I denne vejledning diskuterer vi måderne til at skabe mere kompleks JSON-struktur. Vi opretter arrays med flere datasæt og undersøger også måderne til at skabe indlejret struktur i JSON.
De fleste af de JSON-filer, der bruges til datatransmission mellem forskellige systemer, indeholder mere komplekse datastrukturer. Dermed vil lære om den komplekse JSON-struktur hjælpe dig med at oprette testdata baseret på JSON-skemakravene.
Hvad du lærer:
- Skrivning af koden
- Tilføjelse af Array med flere data i JSON
- Udførelse af operationer på data, før den tildeles til JSON-nøgler
- Oprettelse af en indlejret JSON-struktur
- Brug af et Excel-ark som datakilde til JSON
- Konklusion
- Anbefalet læsning
Skrivning af koden
Vi refererer til vores tidligere indlæg i denne vejledning. Derfor vil jeg foreslå, at alle først gennemgår den tidligere tutorial, inden du går videre til denne.
Vi bruger de samme JSON-data, som vi brugte i vores tidligere tutorial. Vi følger også op med det samme sæt kode, som vi skrev til vores tidligere JSON-eksempel.
Lad os starte nu. !!
Tilføjelse af Array med flere data i JSON
For at tilføje et array til JSON, lad os tilføje en array-nøgle til vores tidligere datasæt.
Vores datasæt bliver som vist nedenfor:
Tilføjelse af et array-objekt til JSON svarer til tilføjelsen af andre nøgleværdier. Værdier kan tildeles direkte på selve arrayets erklæringstidspunkt. Når værdierne er tildelt en matrix, vil JSON newtonsoft serielisere objekterne i nøgleværdipar.
For at tilføje Array i JSON, erklærer vi det i “Medarbejder” klassen selv. (Se vores tidligere tutorial for detaljer)
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' }; } }
Som du kan se, har vi direkte erklæret Array i medarbejderklassen. Foretag ikke ændringer i hovedmetoden. Oprettelse af en anden klasse til JSON-objekt hjælper os med at holde objekter organiseret.
Når der er ændringer i JSON-strukturen, eller når du vil tilføje endnu et datasæt, er alt hvad du skal gøre, kun at foretage ændringer i den pågældende klassefil i stedet for at foretage ændringer overalt i projektet. Dette betyder, at din hovedmetode forbliver den samme det meste af tiden, og ændringerne sker kun inden for klasserne.
Lad os udføre programmet og oprette vores JSON-fil med arrayet.
Kopier nu indholdet og indsæt her for at validere, hvis den oprettede JSON er gyldig eller ej.
Klik på Bekræft JSON for at validere den. JSON-nøgleværdipar arrangeres, og validering udføres på det givne datasæt.
Udførelse af operationer på data, før den tildeles til JSON-nøgler
Lad os antage, at vi har nogle data, og vi vil udføre nogle operationer på disse data, før vi tildeler dem som værdier til JSON-nøglerne.
I så fald, hvordan skal vi gøre det?
For eksempel: Lad os sige, at medarbejder-ID'et, som vi sendte til JSON, er lavet af to dele, de første tre bogstaver angiver placeringskoden, og de sidste 4 cifre angiver medarbejdernummeret. Sammenkædning af begge giver os medarbejder-ID for en medarbejder.
Hvis vi modtager placeringskoden og medarbejdernummeret hver for sig, er vi nødt til at sammenkæde dem sammen for at danne et medarbejder-id. Først da kan vi føre det gennem JSON.
For at overvinde denne type scenarier er vi nødt til at udføre operationer på dataene, før vi tildeler dem til en nøgle.
Lad os se på, hvordan dette kan gøres.
Lad os gå tilbage til vores medarbejderklasse og oprette en anden klasse, hvori vi udfører alle operationerne.
Her opretter vi en anden klasse til at indeholde og udføre operationerne på medarbejderdataene.
Lad os oprette en ny klasse 'EmployeeData'.
Klassen er oprettet, og lad os nu oprette en metode med offentlig adgangsspecifikator og returtype som vores klasse 'Medarbejder'. Vi har angivet metodens navn som “EmployeeDataOps” . Du kan dog angive dit eget navn. For at gøre dette mere simpelt videregiver jeg ingen parametre inden for denne metode.
Da vi beskrev returtypen som en klasse, bliver vi nødt til at returnere en forekomst af medarbejderklassen. For at gøre det opretter vi et klasseobjekt inde i metoden.
Her har vi oprettet et objekt til medarbejderklassen med navnet EmpObj og i slutningen af metoden har vi returneret objektet.
Lad os definere to heltal inden for EmployeeData-klassen, der repræsenterer den fulde placeringskode og medarbejdernummeret. Når de er erklæret, bruger vi det til at udføre operationer og derefter tildele værdier til de respektive taster.
int locationCode = 569; int employeeNumber = 8523;
Nu, da vi har placeringskoden og medarbejdernummeret, kan vi udføre operationer på dem for at finde medarbejder-id'et. For at gøre dette skriver vi en simpel kode for at sammenkæde begge heltal.
int empID = int.Parse(locationCode.ToString() + employeeNumber.ToString());
Dette sammenkæder simpelthen begge de heltal, der danner medarbejder-id'et. Vi har gemt medarbejder-id'et under variablen “EmpID” , og nu sender vi denne variabel til “medarbejder-ID” i EmpObj.
Employee EmpObj = new Employee(); EmpObj.employeeID = empID; return EmpObj;
Hele prøvekoden vil se ud som vist nedenfor:
gratis program til download af youtube-videoer
Har du bemærket, at vi har fjernet den værdi, som vi tidligere tildelte til medarbejder-ID-variablen i medarbejderklassen? Vi gjorde dette, da vi returnerer værdien fra EmployeeDataOps () metode. Derfor tilføres dataene til variablerne fra selve denne metode. Dette fjerner nødvendigheden af direkte deklarering af værdier.
bedste stemme skifter app til pc
Da vi er færdige med metoden nu, bliver vi nødt til at tilføje en forekomst af denne metode til hovedmetoden, så denne metode kan kaldes.
For at gøre dette opretter vi et andet klasseobjekt i hovedmetoden til “Medarbejderdata” klasse.
EmployeeData empData = new EmployeeData();
Når vi først har oprettet et klasseobjekt, tildeler vi nu metoden inde i denne klasse til Emp-objektet, som vi oprettede tidligere til medarbejderklassen.
emp = empData.EmployeeDataOps();
Endelig vil koden inde i hovedmetoden ligne sådan:
Lad os sætte nogle testdata:
Placeringskode = 123
Medarbejdernummer = 9874
Vi sætter disse data i koden og med de sidste ændringer i hovedmetoden. Vi har nu afsluttet vores kode. Lad os nu køre koden og validere vores JSON.
Dette er JSON, der blev oprettet:
Som du kan se, er den nye sammenkædede værdi for medarbejder-id'et blevet indtastet i JSON-værdien.
Lad os kopiere og indsætte denne JSON her for at validere dens struktur. Læg teksten ind på JSON-fnitsiden.
Brug valideringsknappen til at validere strukturen som vist nedenfor:
Oprettelse af en indlejret JSON-struktur
Eksemplet, som vi hidtil har diskuteret, bruger hovedsageligt streng- og numeriske værdier i en matrix eller et objekt. Men JSON kan også bruges til at udtrykke et helt JSON-objekt ved at bruge den samme forestilling som et array-element. Objektmedlemmerne på listen kan bruge deres egne objekter og arraynøgler.
I Introduktion til JSON, som er en af vores tidligere tutorials, havde vi et første kig på, hvordan en indlejret JSON ser ud. I denne vejledning antager vi, at medarbejderen også har en bil, og JSON også skal indeholde alle detaljer om medarbejderbilen.
Så JSON-strukturen, som vi får i slutningen, svarer til denne:
Her har vi medarbejderen JSON med alle dataene, så har vi også et Car JSON-objekt indlejret inde i medarbejderen JSON. Bilobjekt har sit eget sæt nøgler og værdier.
Lad os prøve at oprette denne JSON programmatisk.
Til dette starter vi med den samme JSON, som vi oprettede i vores tidligere tutorial. For at gøre det lettere, opretter vi det nye JSON-objekt (dvs. Car JSON) i en ny klasse. Vi tilføjer en ny klassebil og tilføjer alle objekter inde i denne klasse med en offentlig adgangsspecifikator.
Nu kan vi enten tilføje værdien direkte herover, eller vi kan skrive en ny klasse og oprette en brugerdefineret metode med en klasseobjektreturtype for at tildele værdier svarende til det, vi gjorde i den foregående tutorial. For nemheds skyld tildeler vi værdien direkte til nøglevariablerne.
Nu har vi oprettet en ny klasse med objekterne og værdierne. I det næste trin vil vi føje dette til JSON-medarbejderstrukturen, så når JSON-serialiseringen sker, skal nøgleværdierne fra bilklassen også blive serialiseret sammen med medarbejderklassen som indlejret JSON.
For at gøre det skal vi først tilføje en klassetypebil i medarbejderklassen. Dette objekt bruges til at gemme de værdier, der findes i bilklassen.
Som vist ovenfor har vi tildelt den nye variabel med datatypen som bilklasse. Lad os nu gå til den EmployeeDataOps () -metode, som vi oprettede inden for EmployeeData-klassen. Vi skriver koden for at kalde variablerne og værdierne fra bilklassen.
Lad os først oprette et klasseobjekt til bilklasse:
Car carObj = new Car();
Dette objekt indeholder alle data fra bilklassen. Når vi har erklæret alle data fra bilklassen til dette objekt, er det næste trin at tildele disse data (data indeholdt i bilobjektet) til den bilvariabel, som vi oprettede til at holde disse data.
For at gøre dette bruger vi simpelthen det medarbejderobjekt, som vi oprettede, for at få adgang til bilvariablen. Og så kan vi direkte tildele bilobjektet med dataene til bilvariablen.
EmpObj.car = carObj;
Det er det. Vi har oprettet en variabel i en klasse og derefter oprettet et andet objekt for at få adgang til værdien fra en anden klasse, så tildelte vi værdien til den første variabel.
Lad os nu køre vores program og se, om det kan skabe den ønskede JSON.
Som vist ovenfor ser vi, at der er oprettet en bil-json-nøgle, og den indeholder alle de data, vi indtastede i bilklassen som nøgle og værdier. Nu kopierer vi igen JSON-indholdet og navigerer her for at validere JSON.
Kopier bare alt JSON-indhold til tekstområdet, og klik på “Valider JSON ”-Knappen.
Så JSONlint-webstedet har arrangeret vores data og valideret dem perfekt. Vi kan se, at 'bil' -objektet er arrangeret i JSON-strukturen, som vi krævede. Ved hjælp af den samme proces kan du oprette flere niveauer af indlejret JSON. Bliv ved med at tilføje JSON-objektet til klassen og tildel dens værdi til en klassevariabel.
Som du kan se, behøver vi ikke engang at ændre nogen kode i vores hovedmetode.
Brug af et Excel-ark som datakilde til JSON
I vores tidligere tutorials diskuterede vi flere måder at skabe forskellige strukturer på JSON. Men der var et stort problem med alle vores strukturer, vi kodede altid hårdt på værdierne for tasterne.
I denne vejledning diskuterer vi de måder, hvorpå vi kan bruge et excel-ark til at føre dataene til JSON-tasterne. Jeg vil anbefale dig at gennemgå alle de tutorials, som vi diskuterede tidligere, før du fortsætter med denne, da vi vil diskutere den samme kode, som vi skrev i de foregående tutorials.
At gå trin for trin hjælper dig med at forstå hele konceptet på en bedre måde.
Jeg håber jer har forstået den grundlæggende kode for at oprette en JSON, i denne del vil vi videreføre den samme kodestruktur.
Lad os først oprette en excel-fil med JSON-data.
Vi har oprettet en medarbejderData.xlsx-fil med følgende detaljer.
Før vi begynder at skrive koden til udtrækning af værdier fra excel, skal vi tilføje en samlehenvisning til vores projekt. For at få adgang til kontorobjekt tilbyder C # os Microsoft Office Interop. Disse er ret nyttige til at give nem adgang til kontorobjekterne.
spørgsmål om seleninterview stillet i virksomheder
Da vi bruger excel i dette projekt, bruger vi Microsoft Office Interop Excel-samlehenvisning.
For at installere det, højreklik på Referencer i din løsningsudforsker, og vælg derefter Administrer NuGet-pakker . Skriv Microsoft Office Interop Excel i søgefeltet, og søgeresultatet viser den påkrævede pakke.
Når du får Microsoft Office Interop Excel, skal du klikke på Installer-knap for at installere det.
Når installationen er færdig, kan du se, at Microsoft Office Interop Excel er føjet til listen over samlingsreferencer i projektet.
Til at begynde med skal vi først tildele de forskellige excel-elementer.
Microsoft.Office.Interop.Excel.Application xlApp; Microsoft.Office.Interop.Excel.Workbook xlWorkBook; Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
Her har vi tildelt værdier til Excel-applikationen, Excel-projektmappen og Excel-regnearket. Når disse er defineret, bruger vi disse i vores næste trin for at få adgang til værdierne i excel-arket.
Hvad er de trin, vi generelt følger, hvis vi vil hente en værdi fra et excel-ark?
Først får vi adgang til excel-applikationen, så åbner vi Excel-projektmappen og Excel-regnearket, og senere finder vi elementet baseret på række- og kolonneværdierne. Vi vil gøre noget lignende her.
Denne kode får adgang til excel-applikationen.
xlApp = new Microsoft.Office.Interop.Excel.Application();
Denne kode åbner projektmappen med det givne navn til stede på det givne sted.
xlWorkBook = xlApp.Workbooks.Open(@'D:json employeeData.xlsx', 0, true, 5, '', '', true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, ' ', false, false, 0, true, 1, 0);
Nu skriver vi en kode for at få adgang til det bestemte regneark inde i projektmappen. Vi har et regneark med navnet “Sheet1” (standardnavnet i excel-arket)
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets('Sheet1');
Da vi har fået adgang til arbejdsarket, er det næste trin nu at finde den korrekte kolonne og de korrekte data. Først vil vi søge efter en kolonne med 'Nøglen'.
For eksempel, Lad os først søge efter kolonnen med værdi som 'FirstName'. Når vi først har fundet værdien, udtrækker vi kolonnetallet. Så som vi ved, indeholder den første række overskriften, og den anden række indeholder vores data, så vi bruger kolonnenummeret og række nummeret til at udtrække de nøjagtige data.
Dette gemmer kolonnenummeret for FirstName i variablen.
var colmnVal = xlWorkSheet.Columns.Find('FirstName').Cells.Column;
Nu bruger vi kolonnenummeret på FirstName til at udtrække værdien fra cellen under den. Som bekendt returnerer værdimetoden kun strengtype, så vi gemmer denne i en strengvariabel.
string frstName = xlWorkSheet.Cells(2, colmnVal).Text.ToString();
Nu har vi værdien af fornavnet gemt i variablen. Så vi bruger medarbejderobjektet, som vi definerede i vores metode, til at tildele værdien.
Fjern alle de værdier, du har tildelt / hardkodet i medarbejderklassen, da vi returnerer værdierne ved hjælp af vores metode.
Men der er et problem med dette, '.Tekst' funktion returnerer altid en strengværdi. Så hvis vi ønsker at udtrække værdien af et medarbejder-id, som er et heltal, ekstraheres det også som en streng. Så vi bliver nødt til at konvertere denne streng til et heltal, før vi tildeler den til JSON-objektet. For at gøre det parser vi værdien direkte til et heltal.
Så koden for medarbejder-ID vil se ud som vist nedenfor:
var colmnEmpID = xlWorkSheet.Columns.Find('employeeID').Cells.Column; string emplyID = xlWorkSheet.Cells(2, colmnEmpID).Text.ToString(); int emplyIDint = Int32.Parse(emplyID);
I slutningen analyserer vi strengværdien til et heltal, da vores JSON genkender medarbejder-ID som et heltal.
Så den overordnede kode til at hente data til alle 4 kolonner vil se ud som vist nedenfor:
Nu er alt, hvad vi skal gøre, at tildele de variabler, vi oprettede, med dataene fra excelarket til medarbejderobjekterne.
Alt er klar, vi bygger nu projektet. Når build er afsluttet, udfører vi programmet for at generere JSON.
Følgende JSON genereres:
Lad os nu sammenligne dataene fra JSON med dem i excel-arket.
Som vist ovenfor matcher JSON-dataene dataene i alle 4 kolonner i excel-arket. Lad os validere den JSON, som vores program har genereret. For at gøre det besøger vi igen her . Kopier bare alt JSON-indhold til tekstområdet, og klik på “Valider JSON” knap.
Hurra! Vi har oprettet en gyldig JSON ved hjælp af data fra excel.
Øvelse for dig:
Opret en indlejret JSON i tre niveauer. Opret en forælder JSON Company, og nest den medarbejder JSON, som vi oprettede tidligere sammen med bilen JSON.
Konklusion
Vi har nu nået slutningen af vores tutorial. Det har været en lang tutorial, men vi lærte flere ting. Vi lærte at skabe en simpel JSON ved hjælp af c # programmering og fordelene ved at kategorisere forskellige sæt JSON-data i en anden klasse. Vi brugte også vores programmeringsevner til at tilføje arrays og endda en anden JSON-struktur inde i en forælder-JSON.
Endelig arbejdede vi på måderne til at hente data fra en anden datakilde for at føde værdierne til JSON-nøglerne.
Håber, at I alle har haft hele serien af JSON-tutorials indtil videre.
Tutorial # 4: Brug af JSON til interface-test
Anbefalet læsning
- Sådan oprettes JSON-objekter ved hjælp af C #-kode (JSON Creation Part 1)
- Top JSON Interview Spørgsmål og svar
- Brug af JSON til interface-test
- JSON Tutorial: Introduktion og en komplet guide til begyndere
- Kø Datastruktur i C ++ med illustration
- MongoDB Opret sikkerhedskopi af database
- Stak datastruktur i C ++ med illustration
- Cirkulær sammenkædet liste Datastruktur i C ++ med illustration