how create json structure using c
Vytváření struktury JSON (část 2):
V našem předchozím tutoriálu jsme diskutovali vytvoření jednoduchého souboru JSON pomocí ukázkových datových sad .
Zjistili jsme také podrobnosti o použití rámce json.Net pro serializaci dat do formátu JSON. Využili jsme C # a Visual Studio k vytvoření jednoduché konzolové aplikace pro použití dat a klíčových hodnot poskytovaných námi a poté tyto klíčové hodnoty serializovali do struktury JSON. Nyní se podívejme, co bude tento výukový program obsahovat, jak budeme postupovat vpřed.
V tomto kurzu probereme způsoby, jak vytvořit složitější strukturu JSON. Vytvoříme pole s více sadami dat a také se podíváme na způsoby, jak vytvořit vnořenou strukturu v JSON.
Většina souborů JSON používaných k přenosu dat mezi různými systémy obsahuje složitější datové struktury. Tím vám učení o složité struktuře JSON pomůže při vytváření testovacích dat na základě požadavků schématu JSON.
Co se naučíte:
- Psaní kódu
- Přidání pole s více daty do JSON
- Provádění operací s daty před jejich přiřazením ke klíčům JSON
- Vytvoření vnořené struktury JSON
- Použití listu Excel jako zdroje dat pro JSON
- Závěr
- Doporučené čtení
Psaní kódu
Budeme odkazovat na náš předchozí příspěvek v tomto tutoriálu. Proto bych doporučil každému, aby nejprve prošel dřívějším tutoriálem, než bude pokračovat v tomto.
Použijeme stejná data JSON, která jsme použili v našem předchozím kurzu. Budeme také sledovat stejnou sadu kódu, kterou jsme napsali pro náš předchozí příklad JSON.
Začněme hned teď !!
Přidání pole s více daty do JSON
Chcete-li přidat pole do JSON, přidejme klíč pole do naší předchozí datové sady.
Náš soubor dat bude vypadat takto:
Přidání objektu pole do JSON je podobné jako přidání dalších hodnot klíče. Hodnoty lze přiřadit přímo v době deklarace samotného pole. Jakmile jsou hodnoty přiřazeny k poli, pak JSON newtonsoft serializuje objekty do párů klíč – hodnota.
Chcete-li přidat pole do JSON, deklarujeme jej v 'Zaměstnanec' třída sama. (Podrobnosti najdete v našem předchozím výukovém programu)
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' }; } }
Jak vidíte, přímo jsme deklarovali pole ve třídě Employee. V hlavní metodě neprovádějte žádné změny. Vytvoření jiné třídy pro objekt JSON nám pomůže udržovat organizované objekty.
Kdykoli dojde ke změnám ve struktuře JSON nebo když chcete přidat další sadu dat, vše, co musíte udělat, je provést změny pouze v tomto konkrétním souboru třídy, nikoli provádět změny v celém projektu. To znamená, že vaše Main metoda zůstane po většinu času stejná a ke změnám dojde pouze uvnitř tříd.
Provedeme program a vytvořme náš soubor JSON s polem.
Nyní zkopírujte obsah a vložte tady ověřit, zda je vytvořený JSON platný nebo ne.
Klikněte na Ověřte JSON tlačítko k jeho ověření. Uspořádají se páry klíč – hodnota JSON a na dané datové sadě se provede ověření.
Provádění operací s daty před jejich přiřazením ke klíčům JSON
Předpokládejme, že máme nějaká data a chceme s těmito daty provést nějakou operaci, než je přiřadíme jako hodnoty ke klíčům JSON.
Jak to v takovém případě uděláme?
Například: Řekněme, že ID zaměstnance, které jsme předali do JSON, se skládá ze dvou částí, první tři písmena označují kód umístění a poslední 4 číslice označují číslo zaměstnance. Zřetězení obou nám dá ID zaměstnance zaměstnance.
V případě, že obdržíme kód lokality a číslo zaměstnance samostatně, budeme je muset spojit dohromady a vytvořit ID zaměstnance. Teprve potom to můžeme předat JSONem.
Abychom překonali tyto typy scénářů, musíme provést operace s daty, než je přiřadíme ke klíči.
Pojďme se podívat, jak toho lze dosáhnout.
Vraťme se k naší třídě zaměstnanců a vytvořme další třídu, ve které provedeme všechny operace.
Zde vytvoříme další třídu, která bude obsahovat a provádět operace s údaji o zaměstnancích.
Vytvořme novou třídu „EmployeeData“.
Třída byla vytvořena a nyní vytvořme metodu se specifikátorem veřejného přístupu a návratovým typem jako naše třída „Zaměstnanec“. Název metody jsme zadali jako „EmployeeDataOps“ . Můžete však uvést své vlastní jméno. Aby to bylo jednodušší, nepředávám žádný parametr v rámci této metody.
Jak jsme popsali návratový typ jako třídu, budeme muset vrátit instanci třídy Employee. K tomu vytvoříme uvnitř metody objekt třídy.
Zde jsme vytvořili objekt pro třídu Employee se jménem EmpObj a na konci metody jsme vrátili objekt.
Pojďme definovat dvě celá čísla uvnitř třídy EmployeeData představující kód úplného umístění a číslo zaměstnance. Jakmile je deklarováno, použijeme jej k provádění operací a poté přiřadíme hodnoty příslušným klíčům.
int locationCode = 569; int employeeNumber = 8523;
Nyní, protože máme kód umístění a číslo zaměstnance, můžeme s nimi provádět operace, abychom našli ID zaměstnance. K tomu napíšeme jednoduchý kód, který spojí obě celá čísla.
int empID = int.Parse(locationCode.ToString() + employeeNumber.ToString());
Toto jednoduše zřetězí obě celá čísla tvořící ID zaměstnance. Pod proměnnou jsme uložili ID zaměstnance „EmpID“ , a nyní tuto proměnnou předáme „Employmentb“ v EmpObj.
Employee EmpObj = new Employee(); EmpObj.employeeID = empID; return EmpObj;
Celý ukázkový kód bude vypadat takto:
runtime polymorfismus v c ++
Všimli jste si, že jsme odstranili hodnotu, kterou jsme dříve přiřadili proměnné employeeID ve třídě Employee? Udělali jsme to, protože vracíme hodnotu z EmployeeDataOps () metoda. Proto budou data do proměnných přiváděna z této metody samotné. Tím se odstraní nutnost přímého deklarování hodnot.
jak otevřete soubor dat v systému Windows
Jak jsme s touto metodou hotovi, budeme muset přidat instanci této metody k hlavní metodě, aby bylo možné tuto metodu volat.
K tomu vytvoříme další objekt třídy v hlavní metodě pro „EmployeeData“ třída.
EmployeeData empData = new EmployeeData();
Jakmile jsme vytvořili objekt třídy, přiřadíme nyní metodu uvnitř této třídy k objektu Emp, který jsme dříve vytvořili pro třídu zaměstnanců.
emp = empData.EmployeeDataOps();
Nakonec bude kód uvnitř hlavní metody vypadat takto:
Uveďme několik testovacích dat:
Kód lokality = 123
Počet zaměstnanců = 9874
Tato data vložíme do kódu a s konečnými změnami v hlavní metodě. Nyní jsme dokončili náš kód. Nyní spustíme kód a ověříme náš JSON.
Toto je JSON, který byl vytvořen:
Jak vidíte, nová zřetězená hodnota pro ID zaměstnance byla zadána do hodnoty JSON.
Pojďme zkopírovat a vložit tento JSON tady ověřit jeho strukturu. Vložte text na web JSON chuchvalců.
Pomocí tlačítka pro ověření ověřte strukturu, jak je znázorněno níže:
Vytvoření vnořené struktury JSON
Příklad, který jsme dosud diskutovali, používá převážně řetězcové a číselné hodnoty uvnitř pole nebo objektu. Ale JSON lze také použít k vyjádření celého objektu JSON pomocí stejného pojmu jako prvek pole. Členové objektu uvnitř seznamu mohou používat své vlastní objekty a klíče pole.
V Úvod do JSON, který je jedním z našich dřívějších tutoriálů, jsme měli první pohled na to, jak vypadá vnořený JSON. V tomto kurzu předpokládáme, že zaměstnanec má také auto a JSON by měl obsahovat také všechny podrobnosti o automobilu zaměstnance.
Takže struktura JSON, kterou dostaneme na konci, bude podobná této:
Tady máme zaměstnance JSON se všemi daty, pak máme také objekt Car JSON vnořený uvnitř zaměstnance JSON. Objekt automobilu má vlastní sadu klíčů a hodnot.
Zkusme tento JSON vytvořit programově.
Za tímto účelem začneme se stejným JSONem, který jsme vytvořili v našem předchozím kurzu. Abychom to usnadnili, vytvoříme nový objekt JSON (tj. Car JSON) v nové třídě. Přidáme nový vůz třídy a přidáme všechny objekty uvnitř této třídy se specifikátorem veřejného přístupu.
Nyní můžeme buď přidat hodnotu přímo sem, nebo můžeme napsat novou třídu a vytvořit vlastní metodu s návratovým typem objektu třídy pro přiřazení hodnot podobných tomu, co jsme udělali v předchozím kurzu. Kvůli pohodlí přiřadíme hodnotu přímo klíčovým proměnným.
Nyní jsme vytvořili novou třídu s objekty a hodnotami. V dalším kroku to přidáme do struktury JSON Employee, takže když dojde k serializaci JSON, páry klíč – hodnota ze třídy Car by se měly také serializovat spolu s třídou zaměstnance jako vnořené JSON.
Abychom to mohli udělat, nejdříve budeme muset do třídy Employee přidat objektový vůz třídy. Tento objekt bude použit k uložení hodnot přítomných ve třídě Car.
Jak je uvedeno výše, nové proměnné s datovým typem jsme přiřadili třídu Car. Nyní pojďme k metodě EmployeeDataOps (), kterou jsme vytvořili uvnitř třídy EmployeeData. Napíšeme kód pro volání proměnných a hodnot ze třídy Car.
Nejprve vytvořme objekt třídy pro třídu automobilů:
Car carObj = new Car();
Tento objekt bude obsahovat všechna data z třídy automobilů. Jakmile jsme deklarovali všechna data z třídy automobilů do tohoto objektu, dalším krokem bude přiřadit tato data (data obsažená uvnitř objektu automobilu) proměnné automobilu, kterou jsme vytvořili pro uchovávání těchto dat.
Za tímto účelem jednoduše použijeme objekt Employee, který jsme vytvořili, pro přístup k proměnné auto. A pak můžeme přímo přiřadit objekt automobilu s daty do proměnné auto.
EmpObj.car = carObj;
A je to. V jedné třídě jsme vytvořili proměnnou, poté jsme vytvořili další objekt pro přístup k hodnotě z jiné třídy, poté jsme hodnotu přiřadili první proměnné.
Nyní spustíme náš program a uvidíme, jestli dokáže vytvořit požadovaný JSON.
Jak je uvedeno výše, vidíme, že byl vytvořen klíč JSON automobilu a obsahuje všechna data, která jsme zadali ve třídě Car jako klíč a hodnoty. Nyní znovu zkopírujeme obsah JSON a přejdeme tady k ověření JSON.
Stačí zkopírovat veškerý obsah JSON do textové oblasti a kliknout na 'Ověřte JSON.' ' knoflík.
Web JSONlint tedy uspořádal naše data a dokonale je ověřil. Vidíme, že objekt „auto“ byl uspořádán ve struktuře JSON, jak jsme požadovali. Pomocí stejného procesu můžete vytvořit více úrovní vnořeného JSON. Pokračujte v přidávání objektu JSON do třídy a přiřaďte jeho hodnotu proměnné třídy.
Jak vidíte, v naší hlavní metodě ani nemusíme měnit žádný kód.
Použití listu Excel jako zdroje dat pro JSON
V našich předchozích cvičeních jsme probrali několik způsobů, jak vytvořit různé struktury JSON. Ale se všemi našimi strukturami nastal velký problém, vždy jsme tvrdě kódovali hodnoty pro klíče.
V tomto tutoriálu probereme způsoby, kterými můžeme použít list aplikace Excel ke krmení dat do klíčů JSON. Doporučil bych vám projít si všechny výukové programy, o kterých jsme hovořili dříve, než budeme pokračovat v tomto, protože budeme diskutovat o stejném kódu, který jsme napsali v předchozích výukových programech.
Postupování krok za krokem vám pomůže lépe pochopit celý koncept.
Doufám, že jste pochopili základní kód pro vytvoření JSON, v této části budeme pokračovat ve stejné struktuře kódu.
Nejprve vytvořme soubor aplikace Excel s daty JSON.
Vytvořili jsme soubor employeeData.xlsx s následujícími podrobnostmi.
Než začneme psát kód pro extrahování hodnot z aplikace Excel, budeme muset do našeho projektu přidat odkaz na sestavení. Pro přístup k kancelářskému objektu nám C # nabízí Microsoft Office Interop. Jsou velmi užitečné při poskytování snadného přístupu k kancelářským objektům.
jak spustit .torrent soubory
Protože v tomto projektu používáme Excel, použijeme odkaz na sestavení Microsoft Office Interop Excel.
Chcete-li jej nainstalovat, klikněte pravým tlačítkem na Reference v průzkumníku řešení a poté vyberte Spravujte balíčky NuGet . Napište Microsoft Office Interop Excel do vyhledávací lišty a ve výsledku hledání se zobrazí požadovaný balíček.
Jakmile získáte Microsoft Office Interop Excel, klikněte na Tlačítko instalace nainstalovat.
Po dokončení instalace můžete vidět, že Microsoft Office Interop Excel byl přidán do seznamu odkazů na sestavení v projektu.
Nejprve přidělíme různé prvky aplikace Excel.
Microsoft.Office.Interop.Excel.Application xlApp; Microsoft.Office.Interop.Excel.Workbook xlWorkBook; Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
Zde jsme přiřadili hodnoty aplikaci Excel, sešitu aplikace Excel a listu aplikace Excel. Jakmile budou definovány, použijeme je v dalších krocích k přístupu k hodnotám v listu aplikace Excel.
Jaké jsou kroky, kterými se obecně řídíme, pokud chceme načíst hodnotu z listu aplikace Excel?
Nejprve přistupujeme k aplikaci Excel, poté otevřeme sešit aplikace Excel a list aplikace Excel a později vyhledáme prvek na základě jeho hodnot řádků a sloupců. Budeme zde dělat něco podobného.
Tento kód přistupuje k aplikaci Excel.
xlApp = new Microsoft.Office.Interop.Excel.Application();
Tento kód otevře sešit s daným jménem na daném místě.
xlWorkBook = xlApp.Workbooks.Open(@'D:json employeeData.xlsx', 0, true, 5, '', '', true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, ' ', false, false, 0, true, 1, 0);
Nyní napíšeme kód pro přístup ke konkrétnímu listu uvnitř sešitu. Máme pracovní list s názvem „List1“ (výchozí název v listu aplikace Excel)
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets('Sheet1');
Protože jsme vstoupili do pracovního listu, dalším krokem bude nalezení správného sloupce a správných dat. Nejprve vyhledáme sloupec s „klíčem“.
Například, Nejprve se podívejme na sloupec s hodnotou „Jméno“. Jakmile najdeme hodnotu, extrahujeme číslo sloupce. Pak, jak víme, první řádek obsahuje záhlaví a druhý řádek obsahuje naše data, takže k extrahování přesných údajů použijeme číslo sloupce a číslo řádku.
Tím se do proměnné uloží číslo sloupce pro FirstName.
var colmnVal = xlWorkSheet.Columns.Find('FirstName').Cells.Column;
Nyní použijeme číslo sloupce FirstName k extrahování hodnoty z buňky pod ním. Jak víte, metoda hodnoty vrátí pouze typ řetězce, takže to uložíme do proměnné řetězce.
string frstName = xlWorkSheet.Cells(2, colmnVal).Text.ToString();
Nyní máme hodnotu křestního jména uloženou v proměnné. K přiřazení hodnoty tedy použijeme objekt zaměstnance, který jsme definovali v naší metodě.
Odeberte všechny hodnoty, které jste přiřadili / napevno ve třídě Employee, protože budeme vracet hodnoty pomocí naší metody.
Ale je tu jeden problém, '.Text' funkce vždy vrátí hodnotu řetězce. Takže pokud chceme extrahovat hodnotu ID zaměstnance, což je celé číslo, bude také extrahováno jako řetězec. Před přiřazením k objektu JSON tedy budeme muset tento řetězec převést na celé číslo. Za tímto účelem přímo analyzujeme hodnotu na celé číslo.
Takže kód pro zaměstnance ID bude vypadat takto:
var colmnEmpID = xlWorkSheet.Columns.Find('employeeID').Cells.Column; string emplyID = xlWorkSheet.Cells(2, colmnEmpID).Text.ToString(); int emplyIDint = Int32.Parse(emplyID);
Na konci analyzujeme hodnotu řetězce na celé číslo, protože náš JSON rozpoznává ID zaměstnance jako celočíselnou hodnotu.
Celkový kód pro načítání dat pro všechny 4 sloupce bude tedy vypadat takto:
Nyní musíme pouze přiřadit proměnné, které jsme vytvořili s daty z listu aplikace Excel, k objektům zaměstnanců.
Vše je nastaveno, nyní postavíme projekt. Po dokončení sestavení spustíme program pro vygenerování JSON.
Budou vygenerovány následující JSON:
Pojďme si porovnat data z JSON s daty v listu aplikace Excel.
Jak je uvedeno výše, data JSON odpovídají datům ve všech 4 sloupcích listu aplikace Excel. Pojďme ověřit JSON, který náš program vygeneroval. K tomu opět navštívíme tady . Stačí zkopírovat veškerý obsah JSON do textové oblasti a kliknout na „Validate JSON“ knoflík.
Hurá! Vytvořili jsme platný JSON pomocí dat z aplikace Excel.
Cvičení pro vás:
Vytvořte tříúrovňový vnořený JSON. Vytvořte nadřazenou společnost JSON a vnořte zaměstnance JSON, který jsme vytvořili dříve, spolu s JSON vozu.
Závěr
Nyní jsme dosáhli konce našeho tutoriálu. Byl to dlouhý návod, ale naučili jsme se několik věcí. Naučili jsme se, jak vytvořit jednoduchý JSON pomocí programování v C # a výhody kategorizace různých sad dat JSON do jiné třídy. Také jsme použili naše programovací schopnosti k přidání polí a dokonce další struktury JSON uvnitř nadřazeného JSON.
Nakonec jsme pracovali na způsobech načítání dat z jiného zdroje dat, aby se hodnoty posílaly do klíčů JSON.
Doufám, že jste si všichni zatím užili celou sérii tutoriálů JSON.
Výukový program č. 4: Používání JSON pro testování rozhraní
Doporučené čtení
- Jak vytvořit objekty JSON pomocí kódu C # (tvorba JSON, část 1)
- Nejlepší otázky a odpovědi na rozhovor JSON
- Používání JSON pro testování rozhraní
- Výukový program JSON: Úvod a kompletní průvodce pro začátečníky
- Struktura dat fronty v C ++ s ilustrací
- MongoDB Vytvořit zálohu databáze
- Skládejte datovou strukturu v C ++ s ilustrací
- Datová struktura kruhového propojeného seznamu v C ++ s ilustrací