Шта је ЈСОН?
ЈСОН је лагани текст заснован на тексту за складиштење и пренос структурираних података на организован начин. ЈСОН подаци су представљени у облику уређених листа и парова кључ-вредност. ЈСОН је скраћеница за Ј ава С црипт ИЛИ бјецт Н отација. Као што пуно име указује, изведено је из ЈаваСцрипт -а. Међутим, ЈСОН подаци су подржани у већини популарних програмских језика.
Често се користи за пренос података са сервера на веб страницу. Много је лакше и јасније представити структуриране податке у ЈСОН -у него у КСМЛ -у.
ЈСОН правило синтаксе
Ево правила синтаксе ЈСОН:
- ЈСОН подаци увек треба да буду у облику парова кључ / вредност.
- ЈСОН подаци су одвојени зарезима.
- Цурли заграда се користи за представљање ЈСОН објекта.
- Угласта заграда се користи за представљање ЈСОН низа.
Шта су ЈСОН подаци?
ЈСОН подаци су представљени у облику парова кључ-вредност. Ово је слично речнику или хешу у другим програмским језицима.
Име: Драке
Ово је пример једноставних ЈСОН података. Кључ овде је Име, а Драке је одговарајућа вредност. Кључ, тј. Име и вредност, односно, Драке су одвојени двотачком.
ЈСОН проширење датотеке
ЈСОН подаци се обично чувају у датотеци са наставком .јсон. На пример, да бисте сачували податке о запосленима, датотеци можете једноставно дати назив „запослени.јсон“. Ово би била једноставна текстуална датотека. Затим можете отворити ову ЈСОН датотеку у било ком од својих омиљених уређивача текста.
ЈСОН Објецт
ЈСОН објекат није ништа друго до ЈСОН податак затворен унутар заграда. Ево примера ЈСОН објекта:
{Име:Драке,
Број запосленог:23547а,
Телефон: 23547,
Одељење:Финансије
}
ЈСОН објекат може садржати више ЈСОН података. Сваки ЈСОН податак одвојен је зарезом. ЈСОН подаци су представљени као парови кључ-вредност. Кључ, тј. Име и вредност, односно, Драке су одвојени двотачком. У горњем примеру постоје четири пара кључ-вредност. Први кључ је Име; Драке је одговарајућа вредност за то. Слично, ЕмплоиееИД, Пхоне и Департмент су остала три кључа.
ЈСОН Арраи
ЈСОН низ може садржати неколико ЈСОН објеката одвојених зарезима. ЈСОН низ затворен је у угласту заграду. Погледајмо пример ЈСОН низа:
'Студенти':[{'име':'Сеан', 'презиме':'Смеђа'},
{'име':'Драке', 'презиме':'Вилијамс'},
{'име':'Том', 'презиме':'Миллер'},
{име:Петер,презиме:Јохнсон}
]
Ово је пример ЈСОН низа. Овде је Студент затворен угластом заградом, тј. Низом и садржи четири ЈСОН објекта. Сваки од ових објеката представљен је у облику парова кључ-вредност и одвојен је зарезом.
Пример датотеке ЈСОН
Пошто смо разумели ЈСОН податке, ЈСОН објекте, ЈСОН низ, погледајмо пример ЈСОН датотеке:
{име:Сеан,
презиме:Бровн,
Студентска карта: 21453,
Одељење:Цомпутер Сц.,
Субјецтс:[Матх,Пхи,Цхем]
}
Рашчлањивање библиотека у Ц ++:
Не постоји изворно решење за рашчлањивање ЈСОН података у Ц ++. Међутим, постоји неколико библиотека за рашчлањивање ЈСОН података у Ц ++. У овом чланку ћемо погледати две најпопуларније библиотеке за парсирање ЈСОН података у Ц ++. Ево ГитХуб веза за рашчлањивање ЈСОН података:
Можда ћете желети да преузмете ове библиотеке да бисте могли да извршите доле наведене примере.
Примери
Сада имамо основно разумевање ЈСОН података, објеката, низова и доступних библиотека за рашчлањивање. Погледајмо сада неколико примера за рашчлањивање ЈСОН података у Ц ++:
- Пример-1: Рашчланите ЈСОН у Ц ++
- Пример-2: Рашчланите и серијализујте ЈСОН у Ц ++
- Пример-3: Рашчланите ЈСОН у Ц ++
За Пример-1 и Пример-2, користићемо нлохманн библиотеку. У случају Примера 3, користићемо библиотеку РапидЈСОН.
Пример-1: Рашчланите ЈСОН у Ц ++
У овом примеру програма показаћемо како се приступа вредностима ЈСОН података у Ц ++.
#инцлуде#инцлуде 'јсон.хпп'
користећи јсон=нлохманн::јсон;
интглавни()
{
// јдЕмплоиеес
јсон јдЗапослени=
{
{'име','Сеан'},
{'презиме','Смеђа'},
{'СтудентИД',21453},
{'Одељење','Цомпутер Сц.'}
};
// Приступите вредностима
сати::низфНаме=јдЕмплоиеес.вредност('име', 'оопс');
сати::низлНаме=јдЕмплоиеес.вредност('презиме', 'оопс');
интсИД=јдЕмплоиеес.вредност('СтудентИД', 0);
сати::низдепт=јдЕмплоиеес.вредност('Одељење', 'оопс');
// Одштампајте вредности
сати::цена << 'Име: ' <<фНаме<<сати::ендл;
сати::цена << 'Презиме: ' <<лНаме<<сати::ендл;
сати::цена << 'Студентски ИД:' <<сИД<<сати::ендл;
сати::цена << 'Одељење:' <<депт<<сати::ендл;
повратак 0;
}
Пример-2: Рашчланите и серијализујте ЈСОН у Ц ++
У овом примеру програма видећемо како да рашчланимо и серијализујемо ЈСОН у Ц ++. Користимо јсон :: парсе () за рашчлањивање ЈСОН података.
#инцлуде#инцлуде 'јсон.хпп'
#инцлуде
користећи јсон=нлохманн::јсон;
интглавни()
{
// Ево ЈСОН текста
цхартекст[] =Р'(
{
'Боок': {
'Видтх': 450,
'Висина': 30,
'Титле':'Здраво Свете',
'исБиографија': фалсе,
'НумОфЦопиес': 4,
'ЛибрариИДс': [2319, 1406, 3854, 987]
}
}
) ';
// Хајде да рашчланимо и серијализујемо ЈСОН
јсон ј_цомплете=јсон::рашчланити(текст);
сати::цена <<сати::сетв(4) <<ј_цомплете<<сати::ендл;
}
Пример-3: Рашчланите ЈСОН у Ц ++
Сада ћемо показати како рашчланити ЈСОН низ помоћу библиотеке РапидЈСОН. РапидЈСОН је првобитно инспирисан РапидКСМЛ -ом. У овом примеру програма, ми анализирамо ЈСОН низ у ДОМ. Декларисали смо мидоц типа Доцумент, а затим употребили метод мидоц.парсе () за рашчлањивање ЈСОН низа.
#инцлуде#инцлуде 'рапидјсон/вритер.х'
#инцлуде 'рапидјсон/доцумент.х'
#инцлуде 'рапидјсон/стрингбуффер.х'
користећи простор имена рапидјсон;
интглавни()
{
цонст цхар*јсон= '{'име':'Сеан','презиме':'Бровн','емпИд': 21453,
'одељење':'Цомпутер Сц.'}';
// Рашчланите ЈСОН низ у ДОМ
Документ мидоц;
мидоц.Парсе(јсон);
// ДОМ у низ
СтрингБуффер бафер;
Писац<СтрингБуффер>писац(тампон);
мидоц.Прихвати(писац);
// Штампа излаз
сати::цена <<тампон.ГетСтринг() <<сати::ендл;
повратак 0;
}
Закључак
У овом чланку смо укратко разговарали ЈСОН податке, објекат, низ и синтаксу. Као што знамо, не постоји изворно решење за ЈСОН рашчлањивање података у Ц ++; користили смо две различите библиотеке за рашчлањивање ЈСОН података у Ц ++. Погледали смо три различита примера како бисмо демонстрирали ЈСОН механизам за рашчлањивање података у Ц ++. У поређењу са нлохманн библиотеком, РапидЈСОН је мали, брз и прилагођен меморији.