JSON (JavaScript Object Notation) adalah format data yang ringan dan populer untuk pertukaran informasi antar aplikasi. Saat bekerja dengan data JSON di Go (Golang), kita dapat menggunakan fungsi json.Unmarshal
untuk mengurai (decode) data JSON ke dalam struktur data Go yang sesuai.
Dalam artikel ini, kita akan menjelajahi cara menggunakan fungsi json.Unmarshal
dalam Golang untuk decode dan parsing data JSON.
Langkah pertama adalah mengimpor paket encoding/json
ke dalam program Go kita. Paket ini menyediakan fungsi-fungsi yang diperlukan untuk mengurai dan membentuk (encode) data JSON.
import ( "encoding/json" "fmt" )
Setelah mengimpor paket, kita dapat mendefinisikan struktur data Go yang akan digunakan untuk menyimpan data JSON yang diurai. Struktur data ini harus mencerminkan struktur data JSON yang akan kita dekode.
Misalnya, jika kita memiliki JSON seperti ini:
{ "nama": "John Doe", "umur": 30, "alamat": "Jl. Contoh, Kota Contoh" }
Kita dapat mendefinisikan struktur data Go seperti berikut:
type Pengguna struct { Nama string `json:"nama"` Umur int `json:"umur"` Alamat string `json:"alamat"` }
Struktur data Pengguna
memiliki tiga bidang yang sesuai dengan bidang-bidang dalam JSON. Anotasi json:"nama_bidang"
digunakan untuk mengaitkan bidang dalam struktur data dengan bidang dalam JSON.
Setelah mendefinisikan struktur data, kita dapat menggunakan fungsi json.Unmarshal
untuk mengurai data JSON ke dalam struktur data Go. Berikut adalah contoh penggunaan fungsi ini:
func main() { jsonStr := `{"nama": "John Doe", "umur": 30, "alamat": "Jl. Contoh, Kota Contoh"}` var pengguna Pengguna err := json.Unmarshal([]byte(jsonStr), &pengguna) if err != nil { fmt.Println("Terjadi kesalahan dalam mengurai JSON:", err) return } fmt.Println("Nama:", pengguna.Nama) fmt.Println("Umur:", pengguna.Umur) fmt.Println("Alamat:", pengguna.Alamat) }
Pada contoh di atas, jsonStr
berisi data JSON yang akan diurai. Kemudian, kita mendeklarasikan variabel pengguna
yang merupakan instans dari struktur data Pengguna
.
Fungsi json.Unmarshal
menerima slice byte yang berisi data JSON dan alamat dari variabel pengguna
yang akan diisi dengan data JSON yang diurai. Jika terjadi kesalahan dalam mengurai JSON, fungsi tersebut akan mengembalikan pesan kesalahan.
Selanjutnya, kita dapat mengakses data yang diurai dari struktur pengguna
seperti akses ke bidang-bidang dalam struktur biasa. Pada contoh di atas, kita mencetak nilai bidang Nama
, Umur
, dan Alamat
dari struktur pengguna
ke layar.
Dengan menggunakan fungsi json.Unmarshal
, kita dapat parsing data JSON dengan mudah ke dalam struktur data Go yang sesuai. Ini memungkinkan kita untuk memanipulasi data JSON dengan lebih nyaman dalam lingkungan pemrograman Go.