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:
- Data JSON harus selalu dalam bentuk pasangan nilai-kunci.
- Data JSON dipisahkan dengan koma.
- Pendakap Keriting digunakan untuk mewakili Objek JSON.
- 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:
- https: // github.com / nlohmann / json
- 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 ++:
- Contoh-1: Huraikan JSON di C++
- Contoh-2: Parse dan Serialize JSON di C++
- Contoh-3: Huraikan 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
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.