how create json structure using c
Създаване на JSON структура (част 2):
В предишния ни урок обсъдихме създаване на прост JSON файл с помощта на примерни набори от данни .
Също така разбрахме подробностите за използването на json.Net рамка за сериализиране на данни в JSON формат. Използвахме C # и Visual Studio, за да създадем просто конзолно приложение, за да използваме данни и ключови стойности, предоставени от нас, и след това сериализирахме тези ключови стойности в структурата на JSON. Сега нека видим какво ще обхване този урок, докато вървим напред.
В този урок ще обсъдим начините за създаване на по-сложна JSON структура. Ще създадем масиви с множество набори от данни и ще разгледаме начините за създаване на вложена структура в JSON.
Повечето от JSON файловете, използвани за предаване на данни между различни системи, съдържат по-сложни структури от данни. По този начин, изучаването на сложната JSON структура ще ви помогне при създаването на тестови данни въз основа на изискванията на JSON схемата.
Какво ще научите:
- Писане на кодекса
- Добавяне на масив с множество данни в JSON
- Извършване на операции с данни, преди да ги присвоите на JSON ключове
- Създаване на вложена JSON структура
- Използване на лист на Excel като източник на данни за JSON
- Заключение
- Препоръчително четене
Писане на кодекса
Ще препращаме към предишната ни публикация в този урок. Следователно бих предложил на всички първо да преминат през по-ранния урок, преди да продължат към този.
Ще използваме същите JSON данни, които използвахме в предишния ни урок. Също така ще проследим същия набор от кодове, който написахме за предишния ни пример JSON.
Нека започнем сега. !!
Добавяне на масив с множество данни в JSON
За да добавим масив към JSON, нека добавим ключ от масив към предишния ни набор от данни.
Нашият набор от данни ще стане както е показано по-долу:
Добавянето на обект на масив към JSON е подобно на добавянето на други ключови стойности. Стойностите могат да се присвояват директно по време на декларирането на самия масив. След като стойностите бъдат присвоени на масив, тогава JSON newtonsoft ще сериализира обектите в двойки ключ-стойност.
За да добавим масива в JSON, ние ще го декларираме в „Служител“ самия клас. (Моля, вижте нашия предишен урок за подробности)
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' }; } }
Както можете да видите, директно сме декларирали масива в класа Employee. Не правете никакви промени в основния метод. Създаването на различен клас за JSON обект ще ни помогне да поддържаме обектите организирани.
Винаги, когато има промени в структурата на JSON или когато искате да добавите друг набор от данни, всичко, което трябва да направите, е да правите промените само в този конкретен файл на класа, вместо да правите промени по целия проект. Това означава, че вашият основен метод ще остане същият през повечето време и промените ще се случат само вътре в класовете.
Нека изпълним програмата и създадем нашия JSON файл с масива.
Сега копирайте съдържанието и поставете тук да провери дали създаденият JSON е валиден или не.
Щракнете върху Проверете JSON , за да го потвърдите. Двойките ключ-стойност на JSON ще бъдат подредени и ще се извърши проверка на дадения набор от данни.
Извършване на операции с данни, преди да ги присвоите на JSON ключове
Да приемем, че имаме някои данни и искаме да извършим някаква операция върху тези данни, преди да ги присвоим като стойности на JSON ключовете.
В такъв случай как ще го направим?
Например: Да кажем, че идентификационният номер на служителя, който предадохме в JSON, се състои от две части, първите три букви означават кода на местоположението, а последните 4 цифри означават номера на служителя. Обединяването и на двете ще ни даде идентификационния номер на служител на служител.
В случай, че получим кода за местоположение и номера на служителя поотделно, ще трябва да ги обединим, за да образуваме идентификационен номер на служител. Само тогава можем да го предадем през JSON.
За да преодолеем този тип сценарии, трябва да извършим операции с данните, преди да ги присвоим на ключ.
Нека да разгледаме как това може да се направи.
Да се върнем към класа на служителите си и да създадем друг клас, в който ще изпълняваме всички операции.
Тук ще създадем друг клас, който да съдържа и изпълнява операциите върху данните на служителите.
Нека създадем нов клас „EmployeeData“.
Класът е създаден и сега нека създадем метод с публичен спецификатор за достъп и тип на връщане като нашия клас „Служител“. Предоставихме името на метода като “EmployeeDataOps” . Можете обаче да предоставите собственото си име. За да направя това по-опростено, не предавам параметри в този метод.
Както описахме типа на връщане като клас, ще трябва да върнем екземпляр на класа Employee. За целта ще създадем обект на клас вътре в метода.
Тук създадохме обект за класа Employee с името EmpObj и в края на метода върнахме обекта.
Нека дефинираме две цели числа в класа EmployeeData, представляващи пълния код на местоположението и номера на служителя. След като бъде деклариран, ще го използваме за извършване на операции и след това ще присвояваме стойности на съответните ключове.
int locationCode = 569; int employeeNumber = 8523;
Сега, тъй като разполагаме с кода за местоположение и номера на служителя, можем да извършим операции върху тях, за да намерим идентификационния номер на служителя. За целта ще напишем прост код, който да обедини двете цели числа.
int empID = int.Parse(locationCode.ToString() + employeeNumber.ToString());
Това просто ще свърже двете цели числа, образуващи идентификатора на служителя. Съхранихме идентификатора на служителя под променливата „EmpID“ , и сега ще предадем тази променлива на “workerID” в EmpObj.
Employee EmpObj = new Employee(); EmpObj.employeeID = empID; return EmpObj;
Целият примерен код ще изглежда както е показано по-долу:
java интервю въпрос и отговори за по-свежи
Забелязахте ли, че премахнахме стойността, която по-рано присвоихме на променливата workerID в класа Employee? Направихме това, докато връщаме стойността от EmployeeDataOps () метод. Следователно данните към променливите ще бъдат подадени от самия този метод. Това премахва необходимостта от директно деклариране на стойности.
какво е алфа тестване с пример
Тъй като приключихме с метода сега, ще трябва да добавим екземпляр на този метод към основния метод, за да може този метод да бъде извикан.
За целта ще създадем друг обект от клас в основния метод за “EmployeeData” клас.
EmployeeData empData = new EmployeeData();
След като създадем обект на клас, сега ще присвоим метода в този клас на обекта Emp, който създадохме по-рано за класа служител.
emp = empData.EmployeeDataOps();
И накрая, кодът в основния метод ще прилича на този:
Нека поставим някои тестови данни:
Код на местоположението = 123
Номер на служителя = 9874
Ще поставим тези данни в кода и с окончателните промени в основния метод. Вече завършихме нашия код. Сега нека пуснем кода и проверим нашия JSON.
Това е JSON, който е създаден:
Както можете да видите, новата обединена стойност за идентификатор на служител е въведена в стойността JSON.
Нека копираме и поставим този JSON тук за утвърждаване на неговата структура. Поставете текста в сайта на JSON lint.
Използвайте бутона за потвърждаване, за да проверите структурата, както е показано по-долу:
Създаване на вложена JSON структура
Примерът, който обсъждахме досега, използва предимно низ и числови стойности в масив или обект. Но JSON може да се използва и за изразяване на цял JSON обект, като се използва същото понятие като елемент на масив. Членовете на обекта в списъка могат да използват свои собствени обекти и ключове за масив.
Във Въведение в JSON, което е един от нашите по-ранни уроци, имахме първи поглед върху това как изглежда вложен JSON. В този урок предполагаме, че служителят също има автомобил и JSON също трябва да съдържа всички подробности за автомобила на служителя.
Така че структурата на JSON, която получаваме в края, ще бъде подобна на тази:
Тук имаме служител JSON с всички данни, след това имаме и обект Car JSON, вложен вътре в служителя JSON. Обектът за кола има собствен набор от ключове и стойности.
Нека се опитаме да създадем този JSON програмно.
За това ще започнем със същия JSON, който създадохме в предишния ни урок. За да улесним ще създадем новия JSON обект (т.е. Car JSON) в нов клас. Ще добавим автомобил от нов клас и ще добавим всички обекти в този клас с спецификатор за публичен достъп.
Сега можем или да добавим стойността директно тук, или да напишем нов клас и да създадем персонализиран метод с тип връщане на обект на клас, за да присвоим стойности, подобни на това, което направихме в предишния урок. За удобство ще присвоим стойността директно на ключовите променливи.
Сега създадохме нов клас с обектите и стойностите. В следващата стъпка ще добавим това към структурата на служителя JSON, така че когато се случи JSON сериализация, ключовите стойности от класа Car също трябва да се сериализират заедно с класа на служителите като вложен JSON.
За да направим това, първо, ще трябва да добавим автомобил от клас тип обект в класа Employee. Този обект ще се използва за съхраняване на стойностите, присъстващи в класа Car.
Както е показано по-горе, ние сме присвоили новата променлива с тип данни като клас Car. Сега нека да преминем към метода EmployeeDataOps (), който създадохме в класа EmployeeData. Ще напишем кода, за да извикаме променливите и стойностите от класа Car.
Първо, нека създадем обект на клас за клас автомобил:
Car carObj = new Car();
Този обект ще съдържа всички данни от класа на автомобила. След като декларираме всички данни от класа автомобил в този обект, следващата стъпка ще бъде да присвоим тези данни (данни, съдържащи се в обекта на автомобила) на променливата на автомобила, която създадохме за съхраняване на тези данни.
За да направим това, ние просто ще използваме обекта Employee, който създадохме, за достъп до променливата car. И тогава можем директно да присвоим обекта на автомобила с данните към променливата на автомобила.
EmpObj.car = carObj;
Това е. Създадохме променлива в един клас, след това създадохме друг обект за достъп до стойността от друг клас, след което присвоихме стойността на първата променлива.
Сега нека да стартираме нашата програма и да видим дали тя може да създаде желания JSON.
Както е показано по-горе, виждаме, че е създаден ключ json за кола и той съдържа всички данни, които сме въвели в класа Car като ключ и стойности. Сега отново ще копираме съдържанието на JSON и ще навигираме тук за валидиране на JSON.
Просто копирайте цялото съдържание на JSON в текстовата област и кликнете върху „Проверете JSON Бутон ”.
И така, сайтът JSONlint подреди нашите данни и ги валидира перфектно. Виждаме, че обектът „car“ е подреден в структурата на JSON, както изисквахме. Използвайки един и същ процес, можете да създадете множество нива на вложени JSON. Просто продължете да добавяте JSON обекта към класа и да присвоявате стойността му на променлива на класа.
Както можете да видите, дори не е нужно да променяме какъвто и да е код в нашия основен метод.
Използване на лист на Excel като източник на данни за JSON
В предишните ни уроци обсъдихме няколко начина за създаване на различни структури на JSON. Но имаше голям проблем с всички наши структури, ние винаги сме били трудни за кодиране на стойностите за ключовете.
В този урок ще обсъдим начините, чрез които можем да използваме Excel лист за подаване на данните в клавишите JSON. Бих ви препоръчал да преминете през всички уроци, които обсъдихме по-рано, преди да пристъпим към този, тъй като ще обсъждаме същия код, който написахме в предишните уроци.
Преминаването стъпка по стъпка ще ви помогне да разберете по-добре цялата концепция.
Надявам се, че вие сте разбрали основния код за създаване на JSON, в тази част ще разгледаме същата кодова структура.
Първо, нека създадем Excel файл с JSON данни.
Създадохме файл workerData.xlsx със следните подробности.
Преди да започнем да пишем кода за извличане на стойности от Excel, ще трябва да добавим препратка към сборката към нашия проект. За достъп до офис обект, C # ни предлага Microsoft Office Interop. Те са много полезни при осигуряването на лесен достъп до офисните обекти.
функционално тестване и нефункционално тестване
Тъй като използваме Excel в този проект, ще използваме справка за сглобяване на Microsoft Office Interop Excel.
За да го инсталирате, щракнете с десния бутон върху Референциите в изследователя на решения и след това изберете Управление на NuGet пакети . Напишете Microsoft Office Interop Excel в лентата за търсене и резултатът от търсенето ще покаже необходимия пакет.
След като получите Microsoft Office Interop Excel, щракнете върху Бутон за инсталиране за да го инсталирате.
След като инсталацията приключи, можете да видите, че Microsoft Office Interop Excel е добавен към списъка с референции за сглобяване в проекта.
Като начало нека първо присвоим различните елементи на Excel.
Microsoft.Office.Interop.Excel.Application xlApp; Microsoft.Office.Interop.Excel.Workbook xlWorkBook; Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
Тук сме присвоили стойности на приложението Excel, работната книга на Excel и работния лист на Excel. След като те бъдат дефинирани, ние ще ги използваме в следващите ни стъпки за достъп до стойностите в Excel листа.
Какви са стъпките, които обикновено следваме, ако искаме да извлечем стойност от лист на Excel?
Първо отваряме приложението на Excel, след това отваряме работната книга на Excel и работния лист на Excel и по-късно намираме елемента въз основа на неговите стойности на редове и колони. Ще направим нещо подобно и тук.
Този код ще има достъп до приложението на Excel.
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);
Сега ще напишем код за достъп до конкретния работен лист в работната книга. Имаме работен лист, наречен „Sheet1“ (името по подразбиране в Excel листа)
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets('Sheet1');
Тъй като имахме достъп до WorkSheet, сега следващата стъпка ще бъде да намерим правилната колона и правилните данни. Първо ще потърсим колона с „Ключ“.
Например, Първо, нека да потърсим колоната със стойност като „FirstName“. След като намерим стойността, ще извлечем номера на колоната. Тогава, както знаем, че първият ред съдържа заглавието, а вторият - нашите данни, така че ще използваме номера на колоната и номера на реда, за да извлечем точните данни.
Това ще съхрани номера на колоната за FirstName в променливата.
var colmnVal = xlWorkSheet.Columns.Find('FirstName').Cells.Column;
Сега ще използваме номера на колоната на FirstName, за да извлечем стойността от клетката под нея. Както е известно, методът на стойност ще върне само тип низ, така че ще го съхраним в променлива на низ.
string frstName = xlWorkSheet.Cells(2, colmnVal).Text.ToString();
Сега имаме стойността на First Name, съхранена в променливата. Така че, ние ще използваме обекта на служител, който дефинирахме в нашия метод, за да присвоим стойността.
Моля, премахнете всички стойности, които сте присвоили / кодирали в клас Employee, тъй като ние ще връщаме стойностите, използвайки нашия метод.
Но има един проблем с това, '.Текст' функция винаги връща низова стойност. Така че, ако искаме да извлечем стойността на идентификатор на служител, която е цяло число, тя също ще бъде извлечена като низ. Така че, ще трябва да преобразуваме този низ в цяло число, преди да го присвоим на JSON обекта. За целта директно ще анализираме стойността на цяло число.
И така, кодът за идентификатора на служителя ще изглежда както е показано по-долу:
var colmnEmpID = xlWorkSheet.Columns.Find('employeeID').Cells.Column; string emplyID = xlWorkSheet.Cells(2, colmnEmpID).Text.ToString(); int emplyIDint = Int32.Parse(emplyID);
В края ще анализираме низовата стойност на цяло число, тъй като нашият JSON разпознава идентификатора на служителя като цяло число.
И така, общият код за извличане на данни за всички 4 колони ще изглежда както е показано по-долу:
Сега всичко, което трябва да направим, е да присвоим променливите, които създадохме с данните от Excel листа на обектите на служителите.
Всичко е настроено, сега ще изградим проекта. След като компилацията завърши, ние ще изпълним програмата за генериране на JSON.
Ще се генерира следният JSON:
Сега, нека сравним данните от JSON с тези в Excel листа.
Както е показано по-горе, данните JSON съвпадат с данните във всичките 4 колони на листа на Excel. Нека проверим JSON, който нашата програма е генерирала. За целта отново ще посетим тук . Просто копирайте цялото съдържание на JSON в текстовата област и кликнете върху „Проверка на JSON“ бутон.
Ура! Създадохме валиден JSON, използвайки данните от Excel.
Упражнение за вас:
Създайте вложен JSON на три нива. Създайте компания JSON майка и вложете служител JSON, който създадохме по-рано заедно с автомобила JSON.
Заключение
Сега стигнахме до края на нашия урок. Това беше дълъг урок, но научихме няколко неща. Научихме как да създадем прост JSON с помощта на програмиране c # и предимствата от категоризирането на различни набори от JSON данни в различен клас. Също така използвахме нашите умения за програмиране, за да добавим масиви и дори друга JSON структура в родителски JSON.
И накрая, работихме по начините за извличане на данни от друг източник на данни за подаване на стойностите в ключовете JSON.
Надявам се, че досега всички сте се радвали на цялата серия уроци по JSON.
Урок № 4: Използване на JSON за тестване на интерфейс
Препоръчително четене
- Как да създадете JSON обекти с помощта на C # код (JSON Creation Part 1)
- Най-добрите въпроси и отговори за интервю за JSON
- Използване на JSON за тестване на интерфейс
- Урок за JSON: Въведение и Пълно ръководство за начинаещи
- Структура на данните за опашката в C ++ с илюстрация
- MongoDB Създаване на резервно копие на база данни
- Структура на данните за стека в C ++ с илюстрация
- Структура на данните от циркулярно свързан списък в C ++ с илюстрация