Cara mengurai JSON di C++

How Parse Json C

Maksud dari tutorial ini adalah untuk memahami data JSON dan cara mengurai data JSON di C++. Kami akan membahas data JSON, Objek, Array, sintaks JSON, dan kemudian melalui beberapa contoh kerja untuk memahami mekanisme penguraian data JSON di C++.

Apa itu JSON?

JSON adalah representasi berbasis teks yang ringan untuk menyimpan dan mentransfer data terstruktur dengan cara yang terorganisir. Data JSON direpresentasikan dalam bentuk daftar terurut dan pasangan nilai kunci. JSON adalah singkatan dari J ada S rahasia ATAU objek n otasi. Seperti yang ditunjukkan oleh nama lengkapnya, itu berasal dari JavaScript. Namun, data JSON didukung di sebagian besar bahasa pemrograman populer.



Hal ini sering digunakan untuk mentransfer data dari server ke halaman web. Jauh lebih mudah dan bersih untuk merepresentasikan data terstruktur dalam JSON daripada XML.



Aturan Sintaks JSON

Berikut adalah aturan sintaks JSON:



  1. Data JSON harus selalu dalam bentuk pasangan nilai kunci.
  2. Data JSON dipisahkan dengan koma.
  3. Sebuah kurung kurawal digunakan untuk mewakili Objek JSON.
  4. Tanda kurung siku digunakan untuk mewakili JSON Array.

Apa itu Data JSON?

Data JSON direpresentasikan dalam bentuk pasangan nilai kunci. Ini mirip dengan kamus atau hash dalam bahasa pemrograman lain.

Nama : Drake

Ini adalah contoh data JSON sederhana. Kuncinya di sini adalah Nama dan Drake adalah nilai yang sesuai. Kuncinya, yaitu Nama dan nilainya, yaitu Drake dipisahkan oleh titik dua.



Ekstensi File JSON

Data JSON biasanya disimpan dalam file dengan ekstensi .json. Misalnya, untuk menyimpan data karyawan, Anda cukup menamai file tersebut dengan 'employee.json'. Ini akan menjadi file teks sederhana. Anda kemudian dapat membuka file JSON ini di salah satu editor teks favorit Anda.

Objek JSON

Objek JSON tidak lain adalah data JSON yang diapit oleh kurung kurawal. Berikut adalah contoh objek JSON:

{
Nama:Itik jantan,
identitas pegawai:23547a,
Telepon: 23547,
Departemen:Keuangan
}

Objek JSON dapat berisi beberapa data JSON. Setiap data JSON dipisahkan dengan koma. Data JSON direpresentasikan sebagai pasangan nilai kunci. Kuncinya, yaitu Nama dan nilainya, yaitu Drake dipisahkan oleh titik dua. Dalam contoh di atas, ada empat pasangan nilai kunci. Kunci pertama adalah Nama; Drake adalah nilai yang sesuai untuk itu. Demikian pula, EmployeeID, Phone, dan Department adalah tiga kunci lainnya.

Array JSON

Array JSON dapat berisi beberapa objek JSON yang dipisahkan koma. Array JSON diapit dalam tanda kurung siku. Mari kita lihat contoh array JSON:

'Siswa':[
{'nama depan':'Sean', 'nama keluarga':'Cokelat'},
{'nama depan':'Itik jantan', 'nama keluarga':'Williams'},
{'nama depan':'Tom', 'nama keluarga':'Tukang giling'},
{nama depan:Petrus,nama keluarga:Johnson}
]

Ini adalah contoh larik JSON. Di sini, Siswa diapit dengan tanda kurung siku, yaitu array, dan berisi empat objek JSON. Masing-masing objek ini direpresentasikan dalam bentuk pasangan nilai kunci dan dipisahkan dengan koma.

Contoh File JSON

Sekarang, karena kita memahami data JSON, objek JSON, array JSON, mari kita lihat contoh file JSON:

{
nama depan:Sean,
nama keluarga:cokelat,
Identitas Siswa: 21453,
Departemen:Ilmu Komputer,
mata pelajaran:[matematika,Phy,kimia]
}

Mengurai Pustaka di C++:

Tidak ada solusi asli untuk mem-parsing data JSON di C++. Namun, ada beberapa perpustakaan untuk mengurai data JSON di C++. Pada artikel ini, kita akan melihat ke dua perpustakaan paling populer untuk mengurai data JSON di C++. Berikut adalah tautan GitHub untuk mem-parsing data JSON:

  1. https://github.com/nlohmann/json
  2. https://github.com/Tencent/rapidjson/

Anda mungkin ingin mengunduh pustaka ini untuk dapat menjalankan contoh yang ditunjukkan di bawah ini.

Contoh

Sekarang, kami memiliki pemahaman dasar tentang data JSON, objek, array, dan perpustakaan penguraian yang tersedia. Sekarang mari kita lihat beberapa contoh untuk mengurai data JSON di C++:

  • Contoh-1: Parsing JSON di C++
  • Contoh-2: Parsing dan Serialize JSON di C++
  • Contoh-3: Parsing JSON di C++

Untuk Contoh-1 dan Contoh-2, kita akan menggunakan perpustakaan nlohmann. Dalam kasus Contoh-3, kami akan menggunakan perpustakaan RapidJSON.

Contoh-1: Parsing JSON di C++

Dalam contoh program ini, kami akan mendemonstrasikan cara mengakses nilai data JSON di C++.

#termasuk
#sertakan 'json.hpp'

menggunakan json=nlohmann::json;

ke dalamutama()
{

// jdKaryawan
json jdKaryawan=
{
{'nama depan','Sean'},
{'nama keluarga','Cokelat'},
{'Identitas Siswa',21453},
{'Departemen','Ilmu Komputer'}
};

// Akses nilainya
jam::rangkaianfNama=jdKaryawan.nilai('nama depan', 'Ups');
jam::rangkaianlNama=jdKaryawan.nilai('nama keluarga', 'Ups');
ke dalamsID=jdKaryawan.nilai('Identitas Siswa', 0);
jam::rangkaiandepartemen=jdKaryawan.nilai('Departemen', 'Ups');

// Cetak nilainya
jam::biaya << 'Nama depan: ' <<fNama<<jam::akhir;
jam::biaya << 'Nama keluarga: ' <<lNama<<jam::akhir;
jam::biaya << 'Identitas Siswa: ' <<sID<<jam::akhir;
jam::biaya << 'Departemen:' <<departemen<<jam::akhir;

kembali 0;
}

Contoh-2: Parsing dan Serialize JSON di C++

Dalam contoh program ini, kita akan melihat bagaimana mem-parsing dan membuat serialisasi JSON di C++. Kami menggunakan json::parse() untuk mengurai data JSON.

#termasuk
#sertakan 'json.hpp'
#termasuk

menggunakan json=nlohmann::json;

ke dalamutama()
{
// Ini adalah teks JSON
arangteks[] =R'(
{
'
Buku': {
'
Lebar': 450,
'
Tinggi': 30,
'
Judul':'Halo Dunia',
'
adalahBiografi': Salah,
'
JumlahSalinan': 4,
'
ID Perpustakaan': [2319, 1406, 3854, 987]
}
}
) '
;

// Mari kita mengurai dan membuat serialisasi JSON
json j_lengkap=json::mengurai(teks);
jam::biaya <<jam::setw(4) <<j_lengkap<<jam::akhir;
}

Contoh-3: Parsing JSON di C++

Sekarang, kami akan mendemonstrasikan cara mengurai string JSON menggunakan perpustakaan RapidJSON. RapidJSON awalnya terinspirasi oleh RapidXML. Dalam program contoh ini, kami mengurai string JSON ke dalam DOM. Kami telah mendeklarasikan mydoc dari jenis Dokumen dan kemudian menggunakan metode mydoc.parse() untuk mengurai string JSON.

#termasuk
#sertakan 'rapidjson/writer.h'
#include 'rapidjson/document.h'
#include 'rapidjson/stringbuffer.h'

menggunakan namespace rapidjson;

ke dalamutama()
{

konstan arang*json= '{'nama depan':'Sean','nama keluarga':'cokelat','empId': 21453,
'
departemen':'Ilmu Komputer'}';

// Parsing string JSON ke dalam DOM
dokumen mydoc;
mydoc.Mengurai(json);

// DOM ke string
Buffer StringBuffer;
Penulis<StringBuffer>penulis(penyangga);

mydoc.Menerima(penulis);

// Cetak outputnya
jam::biaya <<penyangga.DapatkanString() <<jam::akhir;

kembali 0;
}

Kesimpulan

Dalam artikel ini, kami telah membahas secara singkat JSON data, objek, array, dan sintaks. Seperti yang kita ketahui, tidak ada solusi asli untuk penguraian data JSON di C++; kami telah menggunakan dua perpustakaan berbeda untuk mengurai data JSON di C++. Kami melihat ke dalam tiga contoh berbeda untuk mendemonstrasikan mekanisme penguraian data JSON di C++. Dibandingkan dengan perpustakaan nlohmann, RapidJSON kecil, cepat, dan ramah memori.