C ++

Cara menguraikan JSON dalam C ++

Cara menguraikan JSON dalam C ++
Tujuan tutorial ini adalah untuk memahami data JSON dan bagaimana menguraikan data JSON di C++. Kami akan membincangkan data JSON, Objek, Array, sintaks JSON, dan kemudian melalui beberapa contoh kerja untuk memahami mekanisme penghuraian data JSON di C++.

Apa itu JSON?

JSON adalah representasi berasaskan teks ringan untuk menyimpan dan memindahkan data berstruktur secara teratur. Data JSON diwakili dalam bentuk senarai teratur dan pasangan nilai-kunci. JSON bermaksud JavaScript Obawak Notasi. Seperti yang ditunjukkan oleh nama penuh, ia berasal dari JavaScript. Walau bagaimanapun, data JSON disokong dalam kebanyakan bahasa pengaturcaraan yang popular.

Ia sering digunakan untuk memindahkan data dari pelayan ke laman web. Jauh lebih mudah dan bersih untuk mewakili data berstruktur dalam JSON daripada XML.

Peraturan Sintaksis JSON

Berikut adalah peraturan sintaks JSON:

  1. Data JSON harus selalu dalam bentuk pasangan nilai-kunci.
  2. Data JSON dipisahkan dengan koma.
  3. Pendakap Keriting digunakan untuk mewakili Objek JSON.
  4. Kurungan persegi digunakan untuk mewakili Array JSON.

Apa itu Data JSON?

Data JSON diwakili dalam bentuk pasangan nilai-kunci. Ini serupa dengan kamus atau hash dalam bahasa pengaturcaraan lain.

"Nama": "Drake"

Ini adalah contoh data JSON ringkas. Kuncinya di sini adalah "Nama" dan "Drake" adalah nilai yang sesuai. Kuncinya, i.e., "Nama" dan nilainya, i.e., "Drake" dipisahkan oleh titik dua.

Sambungan Fail JSON

Data JSON biasanya disimpan dalam fail dengan perpanjangan “.json ”. Sebagai contoh, untuk menyimpan data pekerja, anda boleh menamakan fail tersebut sebagai 'pekerja.json '. Ini akan menjadi fail teks ringkas. Anda kemudian boleh membuka fail JSON ini di mana-mana penyunting teks kegemaran anda.

Objek JSON

Objek JSON tidak lain adalah data JSON yang dilampirkan dalam pendakap keriting. Berikut adalah contoh objek JSON:


"Nama": "Drake",
"ID pekerja": "23547a",
"Telefon": "23547",
"Jabatan": "Kewangan"

Objek JSON boleh mengandungi banyak data JSON. Setiap data JSON dipisahkan dengan koma. Data JSON diwakili sebagai pasangan nilai-kunci. Kuncinya, i.e., "Nama" dan nilainya, i.e., "Drake" dipisahkan oleh titik dua. Dalam contoh di atas, terdapat empat pasangan nilai-kunci. Kunci pertama adalah "Nama"; "Drake" adalah nilai yang sesuai untuknya. Begitu juga, "EmployeeID", "Phone", dan "Department" adalah tiga kunci yang lain.

Susunan JSON

Susunan JSON boleh mengandungi beberapa objek JSON yang dipisahkan koma. Susunan JSON dilampirkan dalam kurungan persegi. Mari kita lihat contoh array JSON:

"Pelajar": [
"firstName": "Sean", "lastName": "Coklat",
"firstName": "Drake", "lastName": "Williams",
"firstName": "Tom", "lastName": "Miller",
"FirstName": "Peter", "nama belakang": "Johnson"
]

Ini adalah contoh array JSON. Di sini, "Pelajar" dilampirkan dengan tanda kurung persegi, i.e., array, dan ia mengandungi empat objek JSON. Setiap objek ini diwakili dalam bentuk pasangan nilai-kunci dan dipisahkan dengan koma.

Contoh Fail JSON

Sekarang, kerana kami memahami data JSON, objek JSON, array JSON, mari kita lihat contoh fail JSON:


"Nama pertama": "Sean",
"Nama belakang": "coklat",
"ID Pelajar": 21453,
"Jabatan": "Komputer Sc.",
"Subjek": ["Matematika", "Phy", "Chem"]

Menghuraikan Perpustakaan dalam C ++:

Tidak ada penyelesaian asli untuk menguraikan data JSON di C++. Walau bagaimanapun, terdapat beberapa perpustakaan untuk menguraikan data JSON di C++. Dalam artikel ini, kita akan melihat dua perpustakaan paling popular untuk menguraikan data JSON di C++. Berikut adalah pautan GitHub untuk menguraikan data JSON:

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

Anda mungkin mahu memuat turun perpustakaan ini untuk dapat melaksanakan contoh yang ditunjukkan di bawah.

Contoh

Sekarang, kami mempunyai pemahaman asas mengenai data, objek, tatasusunan, dan perpustakaan penghuraian JSON. Sekarang mari kita lihat beberapa contoh untuk menguraikan data JSON di C ++:

Untuk Contoh-1 dan Contoh-2, kita akan memanfaatkan perpustakaan "nlohmann". Untuk Contoh-3, kita akan menggunakan perpustakaan "RapidJSON".

Contoh-1: Huraikan JSON di C++

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

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

// jd Pekerja
json jdPekerja =

"nama pertama", "Sean",
"nama belakang", "coklat",
"StudentID", 21453,
"Jabatan", "Komputer Sc."
;
// Akses nilai
std :: string fName = jdPekerja.nilai ("nama pertama", "oops");
std :: string lName = jdPekerja.nilai ("lastName", "oops");
int sID = jdPekerja.nilai ("StudentID", 0);
std :: string dept = jdPekerja.nilai ("Jabatan", "oops");
// Cetak nilai
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;
pulangan 0;

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

Dalam program contoh ini, kita akan melihat bagaimana menguraikan dan membuat siri JSON dalam C++. Kami menggunakan "json :: parse ()" untuk menguraikan data JSON.

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

// Berikut adalah teks JSON
teks char [] = R "(

"Buku":
"Lebar": 450,
"Tinggi": 30,
"Tajuk": "Hello World",
"isBiografi": salah,
"NumOfCopies": 4,
"ID Perpustakaan": [2319, 1406, 3854, 987]


) ";
// Mari kita uraikan dan bersiri JSON
json j_complete = json :: parse (teks);
std :: cout << std::setw(4) << j_complete << std::endl;

Contoh-3: Huraikan JSON di C++

Sekarang, kita akan menunjukkan cara menguraikan rentetan JSON menggunakan perpustakaan RapidJSON. RapidJSON pada mulanya diilhamkan oleh RapidXML. Dalam program contoh ini, kami menguraikan rentetan JSON ke DOM. Kami telah menyatakan "mydoc" dari jenis "Dokumen" dan kemudian menggunakan "mydoc.parse () ”kaedah untuk mengurai rentetan JSON.

#sertakan
#sertakan "fastjson / penulis.h "
#sertakan "quickjson / dokumen.h "
#masuk "quickjson / stringbuffer.h "
menggunakan namespace quickjson;
int utama ()

const char * json = "" firstName ":" Sean "," lastName ":" Brown "," empId ": 21453,
"department": "Komputer Sc."";
// Urutkan rentetan JSON ke DOM
Dokumen mydoc;
mydoc.Hurai (json);
// DOM ke rentetan
Penampan StringBuffer;
Penulis penulis (penyangga);
mydoc.Terima (penulis);
// Cetak output
std :: cout << buffer.GetString() << std::endl;
pulangan 0;

Kesimpulannya

Dalam artikel ini, kami telah membincangkan secara ringkas data, objek, susunan dan sintaks JSON. Seperti yang kita ketahui, tidak ada penyelesaian asli untuk penguraian data JSON di C ++; kami telah menggunakan dua perpustakaan yang berbeza untuk menguraikan data JSON di C++. Kami melihat tiga contoh yang berbeza untuk menunjukkan mekanisme penghuraian data JSON di C++. Berbanding dengan perpustakaan "nlohmann", RapidJSON kecil, cepat, dan mudah diingat.

Permainan Perintah Terbaik untuk Linux
Baris perintah bukan hanya sekutu terbesar anda ketika menggunakan Linux-ia juga dapat menjadi sumber hiburan kerana anda dapat menggunakannya untuk m...
Aplikasi Pemetaan Gamepad Terbaik untuk Linux
Sekiranya anda suka bermain permainan di Linux dengan gamepad dan bukannya sistem input papan kekunci dan tetikus biasa, ada beberapa aplikasi berguna...
Alat Berguna untuk Pemain Linux
Sekiranya anda suka bermain permainan di Linux, kemungkinan anda telah menggunakan aplikasi dan utiliti seperti Wine, Lutris dan OBS Studio untuk meni...