JSON Handling dengan QJsonDocument
Penjelasan
QJsonDocument mem-parsing teks JSON (mis. dari response API) jadi struktur data Qt: QJsonObject (setara objek/dictionary) dan QJsonArray (setara array/list), diakses lewat method seperti object(), array(), value("key"). Kebalikannya, QJsonDocument juga bisa menghasilkan teks JSON dari struktur data Qt.
Contoh Konsep
QByteArray jsonMentah = R"({"nama":"Kaos","harga":99000})";
QJsonDocument doc = QJsonDocument::fromJson(jsonMentah);
QJsonObject obj = doc.object();
QString nama = obj["nama"].toString();
int harga = obj["harga"].toInt();
qDebug() << nama << harga;
// Membuat JSON dari struktur data:
QJsonObject produkBaru;
produkBaru["nama"] = "Topi";
produkBaru["harga"] = 59000;
QJsonDocument docBaru(produkBaru);
QByteArray hasil = docBaru.toJson();
Praktikum
Parsing QByteArray JSON berisi {"judul":"Belajar Qt","penulis":"Budi"} jadi QJsonObject, ambil kedua field-nya ke variabel QString terpisah, tampilkan lewat qDebug().
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
R"(...)" adalah raw string literal C++ (bukan fitur khusus Qt) — sangat berguna untuk menulis JSON literal langsung di kode karena TIDAK PERLU escape tanda kutip ganda di dalamnya, beda dengan string literal biasa yang butuh backslash sebelum setiap tanda kutip nested.