Lenovo Yoga 7i 2in1 14IML9 0WID Intel Core Ultra 5Lenovo Yoga 7 2-in-1 14IML9 83DJ000WID ULTRA 5-125H/16GB/512GB/TS 14.0 OLED/WIN11+OHS2021/TIDAL TEAL - Yoga 7 2-in-1 14IML9 - Part Number : 83DJ000WID - PERFORMANCE: Processor Intel® Core™ Ultra 5 125H, 14C (4P + 8E + 2LPE) / 18T, Max Turbo up to 4.5GHz, 18MB - Graphics Integrated Intel® Arc™ Graphics - Chipset Intel® SoC Platform - Memory 16GB Soldered LPDDR5x-7467 Free Klik Disini ! |
Pustaka standar Go menawarkan paket yang memiliki semua yang Anda perlukan untuk melakukan encoding dan decoding JSON.
Paket encode/json . Ini memungkinkan Anda untuk melakukan encoding data JSON seperti yang didefinisikan dalam RFC 7159.
Saat bekerja dengan data, kita biasanya ingin meng-encode beberapa struct Go menjadi string json.
Namun paket encode/json perpustakaan standar Go memungkinkan kita untuk meng-encode tipe data apa pun ke dalam string JSON.
Mari kita lihat beberapa contoh dan bagaimana encoding json bekerja pada beberapa tipe data Go dan bagaimana Anda dapat menyusun json struct.
Berikut ini definisi json Marshal dalam paket enkode json :
func Marshal(v interface{}) ([]byte, error)
a, _ := json.Marshal(23413)
fmt.Println(string(a))
a, _ := json.Marshal(true)
fmt.Println(string(a))
a, _ := json.Marshal([]string{"foo", "bar", "baz"})
fmt.Println(string(a))
a, _ := json.Marshal(map[string]int{"foo": 1, "bar": 2, "baz": 3})
fmt.Println(string(a))
package main
import (
"fmt"
"encoding/json"
)
type User struct {
Name string
Age int
Active bool
lastLoginAt string
}
func main() {
u, err := json.Marshal(User{Name: "Dina", Age: 20, Active: true, lastLoginAt: "today"})
if err != nil {
panic(err)
}
fmt.Println(string(u))
}
Ini adalah contoh yang lebih lengkap dan memungkinkan Anda untuk melihat bagaimana sebuah struct disusun dengan JSON di Go.
Perhatikan bahwa bidang yang dimulai dengan huruf kecil lastLoginAt
tidak diekspor dan tidak akan ditampilkan di hasil akhir marshal JSON.
package main
import (
"fmt"
"encoding/json"
)
type User struct {
Name string `json:"full_name"`
Age int `json:"age,omitempty"`
Active bool `json:"-"`
lastLoginAt string
}
func main() {
u, err := json.Marshal(User{Name: "Dina", Age: 0, Active: true, lastLoginAt: "today"})
if err != nil {
panic(err)
}
fmt.Println(string(u))
}
Contoh ini memungkinkan kita untuk melihat beberapa fitur JSON
json:"full_name"
dan menentukan nama khusus untuk bidang JSON Andajson:"<field name>,omitempty"
sebagai tag json, bidang akan dibuang di keluaran JSON jika nilainya nol.json:"-"
sebagai tag json, kolom akan dihapus seluruhnya dari output JSON. Ini digunakan ketika Anda ingin menyimpan bidang di struct Go Anda tetapi tidak di tampilkan di output JSON Anda