Evans Jayden Jam Tangan PriaType pengait : Pin Buckle. Kedalaman Anti Air : 5ATM / 50 Meter (Bisa dipakai berenang, snorkling, dibawa mandi) Buy |
JSON, singkatan dari JavaScript Object Notation, adalah suatu format ringkas pertukaran data komputer. Formatnya berbasis teks dan terbaca-manusia serta digunakan untuk merepresentasikan struktur data sederhana dan larik asosiatif.
Tentunya sahabat halovina sudah sangat mengenal file ataupun format json, pada tutorial kali ini kita akan memparsing json string dengan struct pada bahasa golang. Berikut iini sample format json yang saya ambil dari listing properti property145.com.
[
{
"nama_properti":"Navapark BSD",
"alamat":"jalan raya bsd serpong",
"deskripsi":"Dijual rumah mewah dengan harga pas",
"harga_jual": 1000000000
},
{
"nama_properti":"GreenWich BSD",
"alamat":"jalan raya bsd serpong",
"deskripsi":"Dijual apartemen mewah dengan harga pas",
"harga_jual": 700000000
}
]
type propertyListing struct {
NamaProperti string `json:"nama_properti"`
Alamat string `json:"alamat"`
Deskripsi string `json:"deskripsi"`
HargaJual int `json:"harga_jual"`
}
func CekData(nama_properti string) (propertyListing, error) {var dProp []propertyListing
data := `[
{
"nama_properti":"Navapark BSD",
"alamat":"jalan raya bsd serpong",
"deskripsi":"Dijual rumah mewah dengan harga pas",
"harga_jual": 1000000000
},
{
"nama_properti":"GreenWich BSD",
"alamat":"jalan raya bsd serpong",
"deskripsi":"Dijual apartemen mewah dengan harga pas",
"harga_jual": 700000000
}
]`textBytes := []byte(data)
err := json.Unmarshal(textBytes, &dProp)
if err != nil {
return propertyListing{}, err
}for i := 0; i < len(dProp); i++ {
if dProp[i].NamaProperti == nama_properti {
return dProp[i], nil
}
}
return propertyListing{}, err
}
Kita telah membuah format struct dan function parsing data, selanjutnya kita buat function main yang akan di jalankan saat kode program di eksekusi, perhatikan kode dibawah ini :
func main() {
d, err := CekData("Navapark BSD")
if err != nil {
fmt.Println("data error")
}
fmt.Println(d)
}
package mainimport (
"encoding/json"
"fmt"
)type propertyListing struct {
NamaProperti string `json:"nama_properti"`
Alamat string `json:"alamat"`
Deskripsi string `json:"deskripsi"`
HargaJual int `json:"harga_jual"`
}func main() {
d, err := CekData("Navapark BSD")
if err != nil {
fmt.Println("data error")
}
fmt.Println(d)
}func CekData(nama_properti string) (propertyListing, error) {
var dProp []propertyListing
data := `[
{
"nama_properti":"Navapark BSD",
"alamat":"jalan raya bsd serpong",
"deskripsi":"Dijual rumah mewah dengan harga pas",
"harga_jual": 1000000000
},
{
"nama_properti":"GreenWich BSD",
"alamat":"jalan raya bsd serpong",
"deskripsi":"Dijual apartemen mewah dengan harga pas",
"harga_jual": 700000000
}
]`textBytes := []byte(data)
err := json.Unmarshal(textBytes, &dProp)
if err != nil {
return propertyListing{}, err
}for i := 0; i < len(dProp); i++ {
if dProp[i].NamaProperti == nama_properti {
return dProp[i], nil
}
}
return propertyListing{}, err
}
Jalankan kode program dengan cara go run main.go
Selamat mencoba semoga bermanfaat
Youtube : Video Tutorial
Baca artikel lainya :