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;
Весь зразок коду буде виглядати так, як показано нижче:
спокійні веб-сервісні запитання та відповіді для досвідчених
Ви помітили, що ми видалили значення, яке ми раніше присвоїли змінній workerID у класі Employee? Ми зробили це, коли повертаємо значення EmployeeDataOps () метод. Отже, дані до змінних будуть надходити із самого цього методу. Це усуває необхідність безпосереднього декларування значень.
найкраще безкоштовне програмне забезпечення годинника для співробітників
Оскільки ми закінчили з методом зараз, нам потрібно буде додати екземпляр цього методу до основного методу, щоб цей метод можна було викликати.
Для цього ми створимо ще один об’єкт класу в основному методі для “EmployeeData” клас.
EmployeeData empData = new EmployeeData();
Після того, як ми створили об’єкт класу, тепер ми призначимо метод всередині цього класу об’єкту Emp, який ми створили раніше для класу співробітника.
emp = empData.EmployeeDataOps();
Нарешті, код всередині основного методу буде виглядати так:
Давайте наведемо деякі тестові дані:
Код місцезнаходження = 123
Номер працівника = 9874
Ми помістимо ці дані в код і з остаточними змінами в основному методі. Тепер ми завершили наш код. Тепер давайте запустимо код і перевіримо наш JSON.
Це створений JSON:
Як бачите, нове об'єднане значення для ідентифікатора працівника було введено у значення JSON.
Давайте скопіюємо та вставмо цей JSON тут для перевірки його структури. Помістіть текст на сайт Jint Lint.
Використовуйте кнопку перевірки, щоб перевірити структуру, як показано нижче:
Створення вкладеної структури JSON
Приклад, який ми обговорювали до цього часу, використовує в основному рядкові та числові значення всередині масиву або об'єкта. Але JSON також можна використовувати для вираження цілого об'єкта JSON, використовуючи те саме поняття, що і елемент масиву. Члени об'єкта у списку можуть використовувати власні об'єкти та ключі масиву.
У Вступі до JSON, який є одним із наших попередніх підручників, ми вперше подивились, як виглядає вкладений JSON. У цьому посібнику ми припускаємо, що у працівника також є Автомобіль, і JSON також повинен містити всі подробиці про службовий автомобіль.
Тож структура JSON, яку ми отримаємо в кінці, буде схожа на цю:
Тут у нас є JSON працівника з усіма даними, тоді ми також маємо об’єкт JSON Car, вкладений всередину JSON працівника. Об'єкт автомобіля має власний набір ключів і значень.
Спробуємо створити цей JSON програмно.
Для цього ми почнемо з того самого JSON, який ми створили в нашому попередньому уроці. Для полегшення ми створимо новий об'єкт JSON (тобто Car JSON) у новому класі. Ми додамо нову машину класу та додамо всі об’єкти всередині цього класу за допомогою специфікатора загального доступу.
Тепер ми можемо або додати значення безпосередньо сюди, або можемо написати новий клас і створити власний метод із типом повернення об’єкта класу, щоб призначити значення, подібні тим, що ми робили в попередньому навчальному посібнику. Для зручності ми будемо призначати значення безпосередньо ключовим змінним.
Тепер ми створили новий клас з об’єктами та значеннями. На наступному кроці ми додамо це до структури JSON Employee, щоб, коли відбувається серіалізація JSON, ключі-значення з класу Car також мали бути серіалізованими разом із класом співробітника як вкладений JSON.
Для цього спочатку нам потрібно додати об’єктний автомобіль класу до класу Employee. Цей об'єкт буде використовуватися для зберігання значень, присутніх у класі Car.
Як показано вище, ми призначили нову змінну з типом даних як клас Car. Тепер перейдемо до методу EmployeeDataOps (), який ми створили всередині класу EmployeeData. Ми напишемо код для виклику змінних та значень із класу Car.
Спочатку створимо об’єкт класу для класу автомобіля:
Car carObj = new Car();
Цей об’єкт буде містити всі дані з класу автомобілів. Після того, як ми оголосили всі дані з класу car в цей об'єкт, наступним кроком буде призначення цих даних (даних, що містяться в об'єкті car) для змінної автомобіля, яку ми створили для зберігання цих даних.
Для цього ми просто використаємо створений нами об’єкт Employee для доступу до змінної автомобіля. І тоді ми можемо безпосередньо призначити об'єкт автомобіля з даними до змінної автомобіля.
EmpObj.car = carObj;
Це воно. Ми створили змінну в одному класі, потім створили інший об’єкт для доступу до значення з іншого класу, потім призначили значення першій змінній.
Тепер давайте запустимо нашу програму і подивимося, чи може вона створити бажаний JSON.
Як показано вище, ми бачимо, що створено ключ json car, і він містить усі дані, які ми ввели в класі 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. Вони дуже корисні для забезпечення легкого доступу до офісних об’єктів.
черга кругового масиву c ++
Оскільки ми використовуємо 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');
Оскільки ми отримали доступ до робочого аркуша, тепер наступним кроком буде пошук правильного стовпця та правильних даних. Спочатку ми будемо шукати стовпець із ключем.
Наприклад, По-перше, давайте шукати стовпець із значенням «Ім'я». Як тільки ми знайдемо значення, ми витягнемо номер стовпця. Тоді, як ми знаємо, перший рядок містить заголовок, а другий рядок - наші дані, тому ми будемо використовувати номер стовпця та номер рядка для отримання точних даних.
Це збереже номер стовпця FirstName у змінній.
var colmnVal = xlWorkSheet.Columns.Find('FirstName').Cells.Column;
Тепер ми будемо використовувати номер стовпця FirstName для вилучення значення з комірки під ним. Як відомо, метод value повертає лише тип рядка, тому ми будемо зберігати це у рядковій змінній.
string frstName = xlWorkSheet.Cells(2, colmnVal).Text.ToString();
Тепер ми маємо значення First Name, яке зберігається у змінній. Отже, ми будемо використовувати об’єкт працівника, який ми визначили в нашому методі, для присвоєння значення.
Видаліть усі значення, які ви призначили / жорстко закодували в класі Employee, оскільки ми будемо повертати значення за допомогою нашого методу.
Але з цим є одне питання, “.Text” функція завжди повертає значення рядка. Отже, якщо ми хочемо витягнути значення ідентифікатора працівника, яке є цілим числом, воно також буде виділено у вигляді рядка. Отже, нам доведеться перетворити цей рядок у ціле число, перш ніж призначити його об’єкту JSON. Для цього ми безпосередньо проаналізуємо значення на ціле число.
Отже, код для workerID буде виглядати так, як показано нижче:
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.
Підручник No4: Використання JSON для тестування інтерфейсу
Рекомендована література
- Як створити об’єкти JSON за допомогою коду C # (Частина 1 створення JSON)
- Найпопулярніші запитання та відповіді на інтерв’ю JSON
- Використання JSON для тестування інтерфейсу
- Підручник з JSON: Вступ та повний посібник для початківців
- Структура даних черги в C ++ з ілюстрацією
- MongoDB Створення резервної копії бази даних
- Структура даних стеку в C ++ з ілюстрацією
- Структура даних кругового зв’язаного списку на C ++ з ілюстрацією