C++'da JSON Dosyaları Nasıl Okunur ve Yazılır

C Da Json Dosyalari Nasil Okunur Ve Yazilir



C++, JSON verileriyle ilgilenecek bir dizi kitaplığa sahip çok yönlü bir dildir. JavaScript Nesne Gösterimi (JSON), insanların yazması ve okuması kolay, makinelerin de kolayca oluşturup ayrıştırabileceği bir veri alışverişi formatıdır. Web uygulamaları ve sunucular arasında veri aktarımı, veri depolama ve dosyaların yapılandırılması için kullanılır.

C++'da JSON Dosyaları Nasıl Okunur ve Yazılır

JSON, yapılandırılmış verileri web üzerinde depolamanın ve aktarmanın tercih edilen bir yolu olan bir veri formatıdır. Hafiftir, bu da veri aktarımını kolaylaştırır ve veri aktarımının verimliliğinin ve işlenmesinin artmasına neden olur. C++'da Rapidjson, JSON'u ayrıştırmak ve oluşturmak için işlevlere sahip bir kitaplıktır. Bu kitaplık yalnızca JSON verilerinin okunmasına ve yazılmasına olanak sağlamakla kalmaz, aynı zamanda JSON nesnelerinin değiştirilmesine ve doğrulanmasına da olanak tanır. Ayrıca büyük JSON veri kümelerinin akış biçiminde işlenmesine yönelik işlevleri de destekler.







Rapidjson kullanarak JSON verilerini okumak ve yazmak için Rapidjson::Document sınıfı kullanılır. Bu sınıf, bir dosyadan JSON verileri oluşturmak ve ayrıştırmak için üst düzey bir API sağlar ve verilerin manipülasyonunu da mümkün kılar.



C++'da JSON Dosyasından Veri Okuma Örneği

Bu, Rapidjson kitaplığını kullanarak C++'daki bir JSON dosyasındaki verileri okumaya yönelik örnek bir koddur:



#include 'rapidjson/document.h'
#include 'rapidjson/stringbuffer.h'
#include 'rapidjson/filereadstream.h'
#include
#include

Rapidjson ad alanını kullanma;

int ana ( )
{
// dosya için okuma
DOSYA * fp = fopen ( 'örnek.json' , 'R' ) ;

// FileReadStream'i kullanarak
// Okumak gelen veriler dosya
karakter okuma arabelleği [ 65536 ] ;
Rapidjson::FileReadStream: ( fp, readBuffer,
boyutu ( okuma arabelleği ) ) ;

// JSON verilerini ayrıştırma
// Belge nesnesi kullanma
Rapidjson::Belge d;
d.Ayrıştırma Akışı ( dır-dir ) ;

// Kapat dosya
fclose ( fp ) ;

// Verilere erişme içinde JSON belgesi
std::cout << D [ 'İsim' ] .GetString ( ) << std::endl;
std::cout << D [ 'Yaş' ] .Renkli ( ) << std::endl;

geri dönmek 0 ;
}


Dosyayı açmak için fopen() fonksiyonu kullanılır. <<#include “rapidjson/filereadstream.h”>> başlık dosyası, dosyanın verilerini json olarak adlandırılan bir dizede okur. Belge belgesi, dosyanın verilerini tutacak şekilde oluşturulur. Dize ayrıştırılır ve hataları kontrol edilir, eğer hatalar bulunursa bir hata döndürür, aksi takdirde Belge, JSON verilerine erişmek için kullanılır.





C++'da JSON Dosyasına Veri Yazma Örneği

Rapidjson kütüphanesi, bir Document sınıfı oluşturarak JSON dosyalarındaki verileri yazmak için kullanılabilir. Bu, C++'daki JSON dosyasına veri yazmaya yönelik örnek bir koddur:



#include 'rapidjson/document.h'
#include 'rapidjson/filereadstream.h'
#include 'rapidjson/filewritestream.h'
#include 'rapidjson/writer.h'

Rapidjson ad alanını kullanma;

int ana ( )
{
// JSON'u okuyun dosya
DOSYA * fp
= façık ( 'örnek.json' , 'rb' ) ;
karakter okuma arabelleği [ 65536 ] ;
FileReadStream (şimdiki değeri) ( fp, readBuffer, sizeof ( okuma arabelleği ) ) ;
Belge d;
d.Ayrıştırma Akışı ( dır-dir ) ;
fclose ( fp ) ;


Değer & s = d [ 'İsim' ] ;
s.SetString ( 'Simon' , d.Tahsis Ediciyi Al ( ) ) ;

// JSON'u yaz dosya
DOSYA * fp2 = fopen ( 'örnek_modifiye.json' ,
'wb' ) ;
karakter yazma arabelleği [ 65536 ] ;
FileWriteStream işletim sistemi ( FP2, yazma arabelleği,
boyutu ( yazma arabelleği ) ) ;
yazar < Dosya Yazma Akışı > yazar ( Sen ) ;
d.Kabul et ( yazar ) ;
fclose ( FP2 ) ;

geri dönmek 0 ;
}


Bu program, Rapidjson'u eklemek için standart başlık dosyalarını kullanır. Document nesnesi JSON dosyasının verilerini tutar. Üyenin adı ve yaşı JSON nesnesine eklenir. Verilerin dosyaya yazılması için bir çıktı dosyası akışı oluşturulur ve hazırlanır.


İsim ve yaş dosyaya yazılır ve çıkış terminalinde görüntülenir.

Çözüm

JSON, aktarım için veri boyutunun küçültülmesini mümkün kılan ve veri aktarımının verimliliği ve işlenmesiyle sonuçlanan bir veri formatıdır. Rapidjson kullanarak JSON verilerini okumak ve yazmak için Rapidjson::Document sınıfı kullanılır. Bu sınıf, bir dosyadan JSON verileri oluşturmak ve ayrıştırmak için üst düzey bir API sağlar ve verilerin manipülasyonunu da mümkün kılar.