C++

Cara mengurai JSON di C++

Cara mengurai JSON di 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 JadaSrahasia HAIobjek tidakotasi. Seperti yang ditunjukkan oleh nama lengkapnya, itu berasal dari JavaScript. Namun, data JSON didukung di sebagian besar bahasa pemrograman populer.

Ini sering digunakan untuk mentransfer data dari server ke halaman web web. Jauh lebih mudah dan lebih 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. Tanda 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, saya.e., "Nama" dan nilainya, i.e., "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 'karyawan'.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 terlampir di dalam kurung kurawal. Berikut adalah contoh objek JSON:


"Nama": "Drake",
“ID Karyawan”: “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, saya.e., "Nama" dan nilainya, i.e., "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, "Karyawan", "Telepon", dan "Departemen" 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":[
"FirstName":"Sean", "lastName":"Brown",
"FirstName":"Drake", "lastName":"Williams",
"FirstName":"Tom", "lastName":"Miller",
“namadepan”:”Peter”, “Namabelakang”: “Johnson”
]

Ini adalah contoh dari array JSON. Di sini, "Siswa" diapit dengan tanda kurung siku, i.e., 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 Belakang”: “Coklat”,
"ID Siswa": 21453,
"Departemen": "Ilmu Komputer".”,
“Mata Pelajaran”:[“Matematika”, “Phy”, “Chem”]

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 perpustakaan 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++:

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 program contoh ini, kami akan mendemonstrasikan cara mengakses nilai data JSON di C++.

#termasuk
#sertakan "json.hp"
menggunakan json = nlohmann::json;
int utama()

// jdKaryawan
json jdEmployee =

"namadepan","Sean",
"lastName","Brown",
"StudentID",21453,
"Departemen","Ilmu Komputer."
;
// Akses nilainya
std::string fName = jdEmployeees.nilai("Namadepan", "oops");
std::string lName = jdEmployeees.nilai("Nama Belakang", "Ups");
int sID = jdKaryawan.nilai("ID Siswa", 0);
std::string dept = jdEmployeees.value("Jurusan", "ops");
// Cetak nilainya
std::cout << "First Name: " << fName << std::endl;
std::cout << "Last Name: " << lName << std::endl;
std::cout << "Student ID: " << sID << std::endl;
std::cout << "Department: " << dept << std::endl;
kembali 0;

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

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

#termasuk
#sertakan "json.hp"
#termasuk
menggunakan json = nlohmann::json;
int utama()

// Ini adalah teks JSON
teks karakter[] = R"(

"Book":
"Lebar": 450,
"Tinggi": 30,
"Judul": "Halo Dunia",
"isBiography": salah,
"NumOfCopies": 4,
"LibraryIDs": [2319, 1406, 3854, 987]


)";
// Mari kita mengurai dan membuat serialisasi JSON
json j_lengkap = json::parse(teks);
std::cout << std::setw(4) << j_complete << std::endl;

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 DOM. Kami telah mendeklarasikan "mydoc" dari jenis "Document" dan kemudian menggunakan "mydoc.parse()” untuk mengurai string JSONSON.

#termasuk
#sertakan "rapidjson/penulis.h"
#sertakan "rapidjson/dokumen.h"
#sertakan "rapidjson/stringbuffer.h"
menggunakan namespace rapidjson;
int utama()

const char* json = ""FirstName":"Sean","lastName":"Brown","empId":21453,
"departemen":"Ilmu Komputer."";
// Parsing string JSON ke dalam DOM
dokumen mydoc;
mydoc.Parsing(json);
// DOM ke string
Buffer StringBuffer;
Penulis penulis (penyangga);
mydoc.Terima (penulis);
// Cetak outputnya
std::cout << buffer.GetString() << std::endl;
kembali 0;

Kesimpulan

Pada artikel ini, kita telah membahas secara singkat data, objek, array, dan sintaks JSON. 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 tiga contoh berbeda untuk mendemonstrasikan mekanisme penguraian data JSON di C in++. Dibandingkan dengan perpustakaan "nlohmann", RapidJSON kecil, cepat, dan ramah memori.

Cara mengubah penunjuk Mouse dan ukuran kursor, warna & skema pada Windows 10
Penunjuk mouse dan kursor di Windows 10 adalah aspek yang sangat penting dari sistem operasi. Ini dapat dikatakan untuk sistem operasi lain juga, jadi...
Mesin Game Gratis dan Sumber Terbuka untuk Mengembangkan Game Linux
Artikel ini akan membahas daftar mesin game sumber terbuka dan gratis yang dapat digunakan untuk mengembangkan game 2D dan 3D di Linux. Ada banyak mes...
Shadow of the Tomb Raider untuk Tutorial Linux
Shadow of the Tomb Raider adalah tambahan kedua belas untuk seri Tomb Raider - waralaba game aksi-petualangan yang dibuat oleh Eidos Montreal. Permain...