Шта је ЈСОН?
ЈСОН је лагана презентација заснована на тексту за организовано чување и пренос структурираних података. ЈСОН подаци су представљени у облику уређених листа и парова кључ / вредност. ЈСОН је скраћеница за ЈаваСкрипт Објецт Нотација. Као што пуни назив указује, изведен је из ЈаваСцрипт-а. Међутим, ЈСОН подаци су подржани у већини популарних програмских језика.
Често се користи за пренос података са сервера на веб страницу. Много је лакше и чистије приказати структуриране податке у ЈСОН-у него КСМЛ-у.
ЈСОН правило синтаксе
Ево правила синтаксе ЈСОН:
- ЈСОН подаци увек треба да буду у облику парова кључ / вредност.
- ЈСОН подаци су одвојени зарезима.
- Коврчава заграда се користи за представљање ЈСОН објекта.
- Углата заграда користи се за представљање ЈСОН низа.
Шта су ЈСОН подаци?
ЈСОН подаци су представљени у облику парова кључ / вредност. Ово је слично речнику или хешу у другим програмским језицима.
„Име“: „Драке“
Ово је пример једноставних ЈСОН података. Овде је кључ „Име“, а „Драке“ је одговарајућа вредност. Кључ, тј.е., „Име“ и вредност, тј.е., „Драке“ су одвојени двотачком.
ЈСОН екстензија датотеке
ЈСОН подаци се обично чувају у датотеци са наставком „.јсон ”. На пример, да бисте сачували податке о запосленом, датотеку можете једноставно именовати као „запослени“.јсон '. Ово би била једноставна текстуална датотека. Затим ову ЈСОН датотеку можете отворити у било којем од својих омиљених уређивача текста.
ЈСОН објект
ЈСОН објекат није ништа друго него ЈСОН подаци затворени у коврџаве заграде. Ево примера ЈСОН објекта:
„Име“: „Драке“,
„ИД запосленог“: „23547а“,
„Телефон“: „23547“,
„Одељење“: „Финансије“
ЈСОН објекат може садржати више ЈСОН података. Сваки ЈСОН податак одвојен је зарезом. ЈСОН подаци су представљени као парови кључ / вредност. Кључ, тј.е., „Име“ и вредност, тј.е., „Драке“ су одвојени двотачком. У горњем примеру постоје четири пара кључ / вредност. Први тастер је „Име“; „Драке“ је одговарајућа вредност за њега. Слично томе, „ЕмплоиееИД“, „Пхоне“ и „Департмент“ су остала три кључа.
ЈСОН Арраи
ЈСОН низ може садржати неколико ЈСОН објеката одвојених зарезом. ЈСОН низ је затворен у угласту заграду. Погледајмо пример ЈСОН низа:
"Студенти":["фирстНаме": "Сеан", "ластНаме": "Бровн",
"фирстНаме": "Драке", "ластНаме": "Виллиамс",
"фирстНаме": "Том", "ластНаме": "Миллер",
„ФирстНаме“: „Петер“, „ластНаме“: „Јохнсон“
]
Ово је пример ЈСОН низа. Овде је „Студенти“ затворени угластом заградом, тј.е., низ и садржи четири ЈСОН објекта. Сваки од ових објеката представљен је у облику парова кључ / вредност и одвојен је зарезом.
Пример ЈСОН датотеке
Сада, пошто смо разумели ЈСОН податке, ЈСОН објекте, ЈСОН низ, погледајмо пример ЈСОН датотеке:
„ФирстНаме“: „Сеан“,
„ЛастНаме“: „Браон“,
„Студент ИД“: 21453,
„Одељење“: „Цомпутер Сц.”,
„Предмети“: [„Математика“, „Фи“, „Хем“]
Рашчлањивање библиотека у Ц ++:
Не постоји изворно решење за рашчлањивање ЈСОН података у Ц++. Међутим, постоји неколико библиотека за рашчлањивање ЈСОН података у језику Ц++. У овом чланку ћемо погледати две најпопуларније библиотеке за рашчлањивање ЈСОН података у језику Ц++. Ево ГитХуб веза за рашчлањивање ЈСОН података:
- хттпс: // гитхуб.цом / нлохманн / јсон
- хттпс: // гитхуб.цом / Тенцент / рапидјсон /
Можда ћете желети да преузмете ове библиотеке да бисте могли извршити примере приказане у наставку.
Примери
Сада имамо основно разумевање ЈСОН података, објеката, низова и доступних библиотека за рашчлањивање. Погледајмо сада неколико примера за рашчлањивање ЈСОН података у Ц ++:
- Пример-1: Анализирати ЈСОН у Ц++
- Пример-2: Анализирајте и сериализујте ЈСОН у Ц++
- Пример-3: Анализирати ЈСОН у Ц++
За Пример-1 и Пример-2 користићемо библиотеку „нлохманн“. У случају Примера-3 користићемо библиотеку „РапидЈСОН“.
Пример-1: Анализирати ЈСОН у Ц++
У овом примеру програма показаћемо како приступити вредностима ЈСОН података у језику Ц++.
#инцлуде#инцлуде "јсон.хпп "
помоћу јсон = нлохманн :: јсон;
инт маин ()
// јдЕффициеес
јсон јдЕ Емплоиеес =
"фирстНаме", "Сеан",
"ластНаме", "Бровн",
"СтудентИД", 21453,
"Департман", "Цомпутер Сц."
;
// Приступ вредностима
стд :: стринг фНаме = јдЕ Емплоиеес.вредност ("фирстНаме", "упс");
стд :: стринг лНаме = јдЕееееееееес.вредност ("ластНаме", "упс");
инт сИД = јдЗапосленици.вредност ("СтудентИД", 0);
стд :: стринг депт = јдЕ Емплоиеес.вредност („Одељење“, „упс“);
// Штампање вредности
стд :: цоут << "First Name: " << fName << std::endl;
стд :: цоут << "Last Name: " << lName << std::endl;
стд :: цоут << "Student ID: " << sID << std::endl;
стд :: цоут << "Department: " << dept << std::endl;
ретурн 0;
Пример-2: Анализирајте и сериализујте ЈСОН у Ц++
У овом примеру програма видећемо како да рашчланимо и сериализујемо ЈСОН у Ц++. Користимо „јсон :: парсе ()“ за рашчлањивање ЈСОН података.
#инцлуде#инцлуде "јсон.хпп "
#инцлуде
помоћу јсон = нлохманн :: јсон;
инт маин ()
// Ево ЈСОН текста
цхар текст [] = Р "(
„Књига“:
„Ширина“: 450,
„Висина“: 30,
„Наслов“: „Здраво, свет“,
"исБиограпхи": нетачно,
„НумОфЦопиес“: 4,
„ЛибрариИДс“: [2319, 1406, 3854, 987]
) ";
// Анализирајмо и сериализујмо ЈСОН
јсон ј_цомплете = јсон :: парсе (текст);
стд :: цоут << std::setw(4) << j_complete << std::endl;
Пример-3: Анализирати ЈСОН у Ц++
Сада ћемо показати како рашчланити ЈСОН низ помоћу библиотеке РапидЈСОН. РапидЈСОН је првобитно инспирисан РапидКСМЛ-ом. У овом примеру програма рашчлањујемо ЈСОН низ у ДОМ. Прогласили смо „мидоц“ типа „Доцумент“ и затим користили „мидоц.метода парсе () ”за рашчлањивање ЈСОН низа.
#инцлуде#инцлуде "рапидјсон / вритер.х "
#инцлуде "рапидјсон / доцумент.х "
#инцлуде "рапидјсон / стрингбуффер.х "
коришћење простора имена рапидјсон;
инт маин ()
цонст цхар * јсон = "" фирстНаме ":" Сеан "," ластНаме ":" Бровн "," емпИд ": 21453,
"департмент": "Цомпутер Сц."";
// Анализирајте ЈСОН низ у ДОМ
Доцумент мидоц;
мидоц.Парсе (јсон);
// ДОМ у низ
СтрингБуффер бафер;
Писац
мидоц.Прихватити (писац);
// Испис резултата
стд :: цоут << buffer.GetString() << std::endl;
ретурн 0;
Закључак
У овом чланку смо укратко разговарали о ЈСОН подацима, објекту, низу и синтакси. Као што знамо, у Ц ++ не постоји изворно решење за ЈСОН рашчлањивање података; користили смо две различите библиотеке за рашчлањивање ЈСОН података у језику Ц++. Размотрили смо три различита примера како бисмо демонстрирали ЈСОН механизам рашчлањивања података у језику Ц++. У поређењу са „нлохманн“ библиотеком, РапидЈСОН је мали, брз и прилагођен меморији.