how create json structure using c
Креирање ЈСОН структуре (2. део):
У нашем претходном упутству смо разговарали стварање једноставне ЈСОН датотеке помоћу примера скупова података .
Такође смо сазнали детаље о употреби јсон.Нет оквира за сериализацију података у ЈСОН формату. Искористили смо Ц # и Висуал Студио да бисмо креирали једноставну конзолу за употребу података и вредности кључева које смо добили, а затим смо те кључне вредности сериализовали у ЈСОН структуру. Сада, да видимо шта ће ово упутство обрађивати како напредујемо.
У овом упутству ћемо размотрити начине за стварање сложенијих ЈСОН структура. Направићемо низове са више скупова података и такође ћемо истражити начине за стварање угнежђене структуре у ЈСОН-у.
Већина ЈСОН датотека које се користе за пренос података између различитих система садрже сложеније структуре података. Стога ће вам учење о сложеној ЈСОН структури помоћи у стварању тест података на основу захтева ЈСОН шеме.
Шта ћете научити:
- Писање законика
- Додавање низа са више података у ЈСОН
- Извођење операција на подацима пре него што их доделите ЈСОН кључевима
- Креирање угнежђене ЈСОН структуре
- Коришћење Екцел табеле као извора података за ЈСОН
- Закључак
- Препоручено читање
Писање законика
У овом упутству ћемо се позвати на наш претходни пост. Стога бих предложио свима да прво прођу кроз ранији водич, пре него што наставе са овим.
Користићемо исте ЈСОН податке које смо користили у претходном водичу. Такође ћемо наставити са истим низом кода који смо написали за наш претходни пример ЈСОН-а.
Почнимо одмах. !!
Додавање низа са више података у ЈСОН
Да бисмо додали низ у ЈСОН, додајмо кључ низа у наш претходни скуп података.
Наш скуп података постаће како је приказано доле:
Додавање објекта низа у ЈСОН слично је додавању било којих других вредности кључа. Вредности се могу доделити директно у тренутку декларације самог низа. Једном када су вредности додељене низу, тада ће ЈСОН невтонсофт сериализовати објекте у парове кључ / вредност.
Да бисмо додали Низ у ЈСОН, декларисаћемо га у 'Запослени' сама класа. (За детаље погледајте наш претходни водич)
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' }; } }
Као што видите, Арраи смо директно прогласили у класи Емплоиее. Не правите никакве промене у главној методи. Стварање друге класе за ЈСОН објекат помоћи ће нам у одржавању објеката организованим.
Кад год дође до промена у ЈСОН структури или када желите да додате још један скуп података, све што треба да урадите је да унесете промене само у ту одређену датотеку класе, а не да мењате цео пројекат. То значи да ће ваша главна метода остати иста већину времена и да ће се промене дешавати само унутар класа.
Извршимо програм и креирајмо нашу ЈСОН датотеку са низом.
Сада копирајте садржај и налепите овде да провери да ли је креирани ЈСОН важећи или не.
Кликните на Потврдите ЈСОН дугме за потврду. Парови кључ / вредност ЈСОН биће распоређени и извршиће се провера ваљаности на датом скупу података.
Извођење операција на подацима пре него што их доделите ЈСОН кључевима
Претпоставимо да имамо неке податке и желимо да извршимо неку операцију над тим подацима пре него што их доделимо као вредности ЈСОН кључевима.
У таквом случају, како ћемо то учинити?
На пример: Рецимо да је ИД запосленог који смо проследили у ЈСОН направљен из два дела, прва три слова означавају позивни број, а последње 4 цифре означавају број запосленог. Спајањем оба, добићемо идентификациону ознаку запосленог.
У случају да код за локацију и број запосленог добијемо одвојено, мораћемо их заједно повезати да бисмо формирали ИД запосленог. Тек тада можемо да га проследимо кроз ЈСОН.
Да бисмо превазишли ову врсту сценарија, морамо извршити операције над подацима пре него што их доделимо кључу.
Погледајмо како се то може учинити.
Вратимо се на класу запослених и створимо другу класу у којој ћемо изводити све операције.
Овде ћемо створити другу класу која ће садржати и изводити операције над подацима о запосленима.
Направимо нову класу „ЕмплоиееДата“.
Класа је креирана, а сада креирајмо метод са јавним спецификатором приступа и типом повратка као наша класа „Запослени“. Дали смо назив методе као “ЕмплоиееДатаОпс” . Међутим, можете навести своје име. Да бих то учинио једноставнијим, не преносим ниједан параметар унутар ове методе.
Као што смо описали тип повратка као класу, мораћемо да вратимо инстанцу класе Емплоиее. Да бисмо то урадили, креираћемо објект класе унутар методе.
Овде смо креирали објекат за класу Емплоиее са именом ЕмпОбј и на крају методе вратили смо објекат.
Дефинишемо две целобројне вредности унутар класе ЕмплоиееДата које представљају пуни код локације и број запосленог. Једном проглашен, користићемо га за извршавање операција, а затим доделити вредности одговарајућим кључевима.
int locationCode = 569; int employeeNumber = 8523;
Сада, пошто имамо позивни број и број запосленог, можемо да извршимо операције над њима како бисмо пронашли ИД запосленог. Да бисмо то урадили, написаћемо једноставан код за спајање оба цела броја.
int empID = int.Parse(locationCode.ToString() + employeeNumber.ToString());
Ово ће једноставно повезати оба цела броја која чине ИД запосленог. Спремили смо ИД запосленог испод променљиве „ЕмпИД“ , а сада ћемо ову променљиву проследити на „воркерИД“ у ЕмпОбј.
Employee EmpObj = new Employee(); EmpObj.employeeID = empID; return EmpObj;
Цео узорак кода изгледаће као што је приказано доле:
најбоље аниме странице за гледање анимеа бесплатно
Да ли сте приметили да смо уклонили вредност коју смо раније доделили променљивој воркерИД у класи Емплоиее? То смо урадили док враћамо вредност ЕмплоиееДатаОпс () метода. Стога ће се подаци о променљивим напајати из саме ове методе. Ово уклања потребу за директним декларисањем вредности.
питања о Мицрософт Екцел функцијама и уобичајеној синтакси
Како смо сада завршили са методом, мораћемо да додамо инстанцу ове методе главној методи како би се ова метода могла позвати.
Да бисмо то урадили, креираћемо још један објект класе у главној методи за “ЕмплоиееДата” класа.
EmployeeData empData = new EmployeeData();
Једном када смо креирали објекат класе, сада ћемо доделити методу унутар ове класе објекту Емп који смо раније креирали за класу запосленика.
emp = empData.EmployeeDataOps();
Коначно, код унутар главне методе ће изгледати овако:
Ставимо неке тест податке:
Код локације = 123
Број запосленог = 9874
Убацићемо ове податке у код и са коначним променама у главној методи. Сада смо завршили наш код. Сада, пустимо код и потврдимо наш ЈСОН.
Ово је ЈСОН који је створен:
Као што видите, нова спојена вредност за ИД запосленог унета је у вредност ЈСОН.
Копирајмо и налепите овај ЈСОН овде да би се потврдила његова структура. Ставите текст на ЈСОН веб страницу.
Помоћу дугмета за потврду потврдите структуру као што је приказано доле:
Креирање угнежђене ЈСОН структуре
Пример који смо до сада разматрали користи углавном низ и нумеричке вредности унутар низа или објекта. Али ЈСОН се такође може користити за изражавање целокупног ЈСОН објекта коришћењем истог појма као елемента низа. Чланови објекта на листи могу користити своје објекте и кључеве низа.
У Уводу у ЈСОН, који је један од наших ранијих водича, имали смо први поглед на то како изгледа угнежђени ЈСОН. У том упутству претпостављамо да запослени такође има аутомобил, а ЈСОН такође треба да садржи све детаље о запосленом аутомобилу.
Дакле, ЈСОН структура коју ћемо добити на крају биће слична овој:
Овде имамо запосленог ЈСОН са свим подацима, а затим имамо и Цар ЈСОН објекат угнежден унутар запосленог ЈСОН-а. Објекат аутомобила има свој сет кључева и вредности.
Покушајмо да направимо овај ЈСОН програмски.
За ово ћемо почети са истим ЈСОН-ом који смо креирали у претходном водичу. Да бисмо то учинили лакшим, створићемо нови ЈСОН објекат (тј. Цар ЈСОН) у новој класи. Додаћемо аутомобил нове класе и додаћемо све објекте унутар ове класе са спецификатором за јавни приступ.
Сада можемо додати вредност директно овде или можемо написати нову класу и створити прилагођену методу са типом класе објекта за враћање да доделимо вредности сличне ономе што смо урадили у претходном водичу. Ради погодности, вредност ћемо доделити директно кључним променљивим.
Сада смо креирали нову класу са објектима и вредностима. У следећем кораку ћемо додати ово ЈСОН структури запослених, тако да када се догоди ЈСОН сериализација, кључеви / вредности из класе Цар такође треба да се сериализују заједно са класом запослених као угнездио ЈСОН.
Да бисмо то урадили, прво ћемо морати да додамо предметни аутомобил класе класе у класу Емплоиее. Овај објекат ће се користити за чување вредности присутних у класи Цар.
Као што је горе приказано, нову променљиву са типом података доделили смо класи аутомобила. Сада идемо на методу ЕмплоиееДатаОпс () који смо креирали унутар класе ЕмплоиееДата. Написаћемо код за позивање променљивих и вредности из класе Цар.
Прво, креирајмо објекат класе за класу аутомобила:
Car carObj = new Car();
Овај објекат ће садржати све податке из класе аутомобила. Након што декларишемо све податке из класе аутомобила у овај објекат, следећи корак биће додељивање ових података (података који се налазе унутар објекта аутомобила) променљивој аутомобила коју смо креирали за држање ових података.
Да бисмо то урадили, једноставно ћемо користити објекат Емплоиее који смо креирали за приступ променљивој аутомобила. А онда можемо аутомобилски објекат са подацима директно доделити променљивој аутомобила.
EmpObj.car = carObj;
То је то. Креирали смо променљиву у једној класи, затим креирали други објекат за приступ вредности из друге класе, а затим смо доделили вредност првој променљивој.
Хајде сада да покренемо наш програм и видимо да ли може да креира жељени ЈСОН.
Као што је горе приказано, видимо да је створен цар јсон кључ и он садржи све податке које смо као кључ и вредности унели у класу Цар. Сада ћемо поново копирати ЈСОН садржај и кретати се овде за потврду ЈСОН-а.
Само копирајте сав ЈСОН садржај у подручје за текст и кликните на „Потврдите ЈСОН Дугме.
Дакле, ЈСОНлинт сајт је средио наше податке и савршено их потврдио. Можемо видети да је објекат „аутомобил“ распоређен у ЈСОН структури како смо тражили. Користећи исти поступак, можете да креирате више нивоа угнежђених ЈСОН-а. Само наставите да додајете ЈСОН објекат у класу и доделите његову вредност променљивој класе.
Као што видите, чак ни не морамо да мењамо било који код у нашем главном методу.
Коришћење Екцел табеле као извора података за ЈСОН
У нашим претходним водичима разговарали смо о неколико начина за стварање различитих структура ЈСОН-а. Али постојао је велики проблем са свим нашим структурама, увек смо тешко кодирали вредности кључева.
У овом упутству ћемо размотрити начине на које можемо користити Екцел лист за унос података у ЈСОН кључеве. Препоручио бих вам да прођете кроз све водиче о којима смо раније разговарали пре него што наставимо са овим, јер ћемо разговарати о истом коду који смо написали у претходним водичима.
Корак по корак помоћи ће вам да боље разумете цео концепт.
Надам се да сте разумели основни код за креирање ЈСОН-а, у овом делу ћемо унапредити исту структуру кода.
Прво, креирајмо екцел датотеку са ЈСОН подацима.
Направили смо датотеку воркерДата.клск са следећим детаљима.
Пре него што започнемо са писањем кода за издвајање вредности из екцела, мораћемо да додамо референцу склопа нашем пројекту. Да бисмо приступили канцеларијском објекту, Ц # нам нуди Мицрософт Оффице Интероп. Они су врло корисни у пружању лаког приступа канцеларијским објектима.
питања и одговори за интервју за селениум јава
Како у овом пројекту користимо Екцел, користићемо референцу склопа Мицрософт Оффице Интероп Екцел.
Да бисте га инсталирали, десни клик на Референце у истраживачу решења, а затим изаберите Управљајте НуГет пакетима . У траку за претрагу напишите Мицрософт Оффице Интероп Екцел и резултат претраге ће приказати потребан пакет.
Када добијете Мицрософт Оффице Интероп Екцел, кликните на Дугме Инсталирај да га инсталирате.
Када се инсталација заврши, можете видети да је Мицрософт Оффице Интероп Екцел додан на листу референци о склоповима у пројекту.
За почетак, прво доделимо различите екцел елементе.
Microsoft.Office.Interop.Excel.Application xlApp; Microsoft.Office.Interop.Excel.Workbook xlWorkBook; Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
Овде смо доделили вредности апликацији Екцел, радној свесци Екцел и радном листу Екцел. Једном када се дефинишу, користићемо их у следећим корацима за приступ вредностима у екцел листу.
Који су кораци које обично следимо ако желимо да преузмемо вредност са Екцел листа?
Прво приступамо екцел апликацији, затим отварамо екцел радну свеску и екцел радни лист, а касније лоцирамо елемент на основу вредности реда и колоне. Урадићемо нешто слично овде.
Овај код ће приступити екцел апликацији.
xlApp = new Microsoft.Office.Interop.Excel.Application();
Овај код ће отворити радну свеску са наведеним именом на датој локацији.
xlWorkBook = xlApp.Workbooks.Open(@'D:json employeeData.xlsx', 0, true, 5, '', '', true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, ' ', false, false, 0, true, 1, 0);
Сада ћемо написати код за приступ одређеном радном листу унутар радне свеске. Имамо радни лист под називом „Схеет1“ (подразумевано име у екцел листу)
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets('Sheet1');
Како смо приступили радном листу, сада ће следећи корак бити проналажење тачне колоне и тачних података. Прво ћемо тражити колону са „Кључем“.
На пример, Прво, потражимо колону са вредношћу „Име“. Једном када пронађемо вредност, издвојићемо број колоне. Тада, као што знамо да први ред садржи наслов, а други ред садржи наше податке, користићемо број колоне и број реда за издвајање тачних података.
Ово ће у променљиву сачувати број колоне за ФирстНаме.
var colmnVal = xlWorkSheet.Columns.Find('FirstName').Cells.Column;
Сада ћемо користити број колоне ФирстНаме за издвајање вредности из ћелије испод ње. Као што знамо, метода вредности ће вратити само тип низа, па ћемо је сачувати у променљивој низа.
string frstName = xlWorkSheet.Cells(2, colmnVal).Text.ToString();
Сада имамо вредност Фирст Наме сачувану у променљивој. Дакле, користићемо објекат запосленика који смо дефинисали у нашој методи за додељивање вредности.
Уклоните све вредности које сте доделили / чврсто кодирали у класи Емплоиее, јер ћемо вредности враћати помоћу наше методе.
Али постоји једно питање са овим, „.Текст“ функција увек враћа вредност низа. Дакле, ако желимо да издвојимо вредност ИД-а запосленог који је цео број, она ће такође бити извучена као низ. Дакле, мораћемо да претворимо овај низ у цео број пре него што га доделимо ЈСОН објекту. Да бисмо то урадили, директно ћемо рашчланити вредност на цео број.
Дакле, код за ид запосленика изгледат ће као што је приказано у наставку:
var colmnEmpID = xlWorkSheet.Columns.Find('employeeID').Cells.Column; string emplyID = xlWorkSheet.Cells(2, colmnEmpID).Text.ToString(); int emplyIDint = Int32.Parse(emplyID);
На крају ћемо рашчланити вредност низа на цео број јер наш ЈСОН препозна запосленика као целобројну вредност.
Дакле, укупни код за преузимање података за све 4 колоне ће изгледати као што је приказано у наставку:
Сада све што треба да урадимо је да доделимо променљиве које смо креирали са подацима из Екцел листа објектима запослених.
Све је постављено, ми ћемо сада градити пројекат. Након завршетка израде, извршићемо програм за генерисање ЈСОН-а.
Генерисаће се следећи ЈСОН:
Сад, упоредимо податке из ЈСОН-а са онима у екцел листу.
Као што је горе приказано, ЈСОН подаци се подударају са подацима у све 4 колоне Екцел листа. Потврдимо ЈСОН који је генерисао наш програм. Да бисмо то урадили, поново ћемо посетити овде . Само копирајте сав ЈСОН садржај у подручје за текст и кликните на „Провери ЈСОН“ дугме.
Ура! Направили смо важећи ЈСОН користећи податке из екцела.
Вежба за вас:
Направите угнежђени ЈСОН на три нивоа. Створите надређену ЈСОН компанију и угнездите запосленог ЈСОН који смо раније креирали заједно са аутомобилом ЈСОН.
Закључак
Сада смо дошли до краја нашег упутства. Био је то дугачак водич, али научили смо неколико ствари. Научили смо како да креирамо једноставан ЈСОН користећи програмирање ц # и предности категоризације различитих скупова ЈСОН података у другу класу. Такође смо користили наше вештине програмирања за додавање низова, па чак и друге ЈСОН структуре унутар надређеног ЈСОН-а.
На крају, радили смо на начинима за преузимање података из другог извора података за уношење вредности у ЈСОН кључеве.
Надам се да сте сви до сада уживали у читавој серији ЈСОН водича.
Туториал # 4: Коришћење ЈСОН-а за тестирање интерфејса
Препоручено читање
- Како створити ЈСОН објекте помоћу Ц # кода (ЈСОН Цреатион Парт 1)
- Најчешћа питања и одговори за ЈСОН интервјуе
- Коришћење ЈСОН-а за тестирање интерфејса
- Водич за ЈСОН: Увод и потпун водич за почетнике
- Структура података у реду у Ц ++ са илустрацијом
- МонгоДБ Направите резервну копију базе података
- Структура података стека у Ц ++ са илустрацијом
- Структура података кружно повезане листе на Ц ++ са илустрацијом