Како читати и писати ЈСОН датотеке у Ц++

Kako Citati I Pisati Json Datoteke U C



Ц++ је свестран језик који има скуп библиотека за рад са ЈСОН подацима. ЈаваСцрипт објектна нотација (ЈСОН) је формат за размену података који је људима лак за писање и читање, а машине могу лако да генеришу и анализирају. Користи се за пренос података између веб апликација и сервера и за складиштење података, као и за конфигурацију датотека.

Како читати и писати ЈСОН датотеке у Ц++

ЈСОН је формат података који је преферирани начин складиштења и преноса структурираних података на вебу. Лаган је, што олакшава пренос података и резултира побољшаном ефикасношћу и обрадом преноса података. У Ц++ рапидјсон је библиотека која има функције за рашчлањивање и генерисање ЈСОН-а. Ова библиотека не само да омогућава читање и писање ЈСОН података, већ такође омогућава манипулацију и валидацију објеката ЈСОН-а. Такође подржава функције за руковање великим скуповима података ЈСОН-а на начин стримовања.







За читање и писање ЈСОН података користећи рапидјсон, користи се класа рапидјсон::Доцумент. Ова класа обезбеђује АПИ високог нивоа за генерисање и рашчлањивање ЈСОН података из датотеке и омогућава манипулацију подацима.



Пример за читање података из ЈСОН датотеке у Ц++

Ово је пример кода за читање података из ЈСОН датотеке у Ц++ користећи рапидјсон библиотеку:



#инцлуде 'рапидјсон/доцумент.х'
#инцлуде 'рапидјсон/стрингбуффер.х'
#инцлуде 'рапидјсон/филереадстреам.х'
#инцлуде <фстреам>
#инцлуде <иостреам>

коришћење простора имена рапидјсон;

инт маин ( )
{
// Отвори фајл за читање
ФИЛЕ * фп = фопен ( 'екампле.јсон' , 'р' ) ;

// Користите ФилеРеадСтреам за
// читати подаци из фајл
цхар реадБуффер [ 65536 ] ;
рапидјсон::ФилеРеадСтреам је ( фп, реадБуффер,
величина ( реадБуффер ) ) ;

// Парсирајте ЈСОН податке
// користећи објекат Доцумент
рапидјсон::Доцумент д;
д.ПарсеСтреам ( је ) ;

// Затвори фајл
фцлосе ( фп ) ;

// Приступите подацима ин ЈСОН документ
стд::цоут << д [ 'име' ] .ГетСтринг ( ) << стд::ендл;
стд::цоут << д [ 'старост' ] .Тинтед ( ) << стд::ендл;

повратак 0 ;
}


Функција фопен() се користи за отварање датотеке. Датотека заглавља <<#инцлуде “рапидјсон/филереадстреам.х”>> чита податке датотеке у низу који је назван као јсон. Документ документа је креиран да садржи податке из датотеке. Стринг се рашчлањује и његове грешке се проверавају, ако се пронађу грешке, враћа грешку, иначе се Документ користи за приступ подацима ЈСОН-а.





Пример за уписивање података у ЈСОН датотеку у Ц++

Библиотека рапидјсон се може користити за писање података у ЈСОН датотеке креирањем класе Доцумент. Ово је пример кода за писање података у ЈСОН датотеку у Ц++:



#инцлуде 'рапидјсон/доцумент.х'
#инцлуде 'рапидјсон/филереадстреам.х'
#инцлуде 'рапидјсон/филевритестреам.х'
#инцлуде 'рапидјсон/вритер.х'

коришћење простора имена рапидјсон;

инт маин ( )
{
// Прочитајте ЈСОН фајл
ФИЛЕ * фп
= фопен ( 'екампле.јсон' , 'рб' ) ;
цхар реадБуффер [ 65536 ] ;
ФилеРеадСтреам је ( фп, реадБуффер, сизеоф ( реадБуффер ) ) ;
Документ д;
д.ПарсеСтреам ( је ) ;
фцлосе ( фп ) ;


Валуе & с = д [ 'име' ] ;
с.СетСтринг ( 'Сајмон' , д.ГетАллоцатор ( ) ) ;

// Напишите ЈСОН фајл
ФИЛЕ * фп2 = фопен ( 'екампле_модифиед.јсон' ,
'вб' ) ;
цхар вритеБуффер [ 65536 ] ;
ФилеВритеСтреам ос ( фп2, вритеБуффер,
величина ( вритеБуффер ) ) ;
Вритер < ФилеВритеСтреам > писац ( ти ) ;
д.Аццепт ( писац ) ;
фцлосе ( фп2 ) ;

повратак 0 ;
}


Овај програм користи стандардне датотеке заглавља да укључи рапидјсон. Објект Доцумент садржи податке ЈСОН датотеке. Име и старост члана се додају у ЈСОН објекат. Креиран је ток излазне датотеке и припремљен за уписивање података у датотеку.


Име и старост су уписани у датотеку и приказани на излазном терминалу.

Закључак

ЈСОН је формат података који омогућава смањење величине података за пренос и доводи до побољшане ефикасности и обраде преноса података. За читање и писање ЈСОН података користећи рапидјсон, користи се класа рапидјсон::Доцумент. Ова класа обезбеђује АПИ високог нивоа за генерисање и рашчлањивање ЈСОН података из датотеке и омогућава манипулацију подацима.