Saya mencoba mengonversi Go struct ke JSON menggunakan json
paket tetapi yang saya dapatkan hanyalah {}
. Saya yakin itu adalah sesuatu yang sangat jelas tetapi saya tidak melihatnya.
package main
import (
"fmt"
"encoding/json"
)
type User struct {
name string
}
func main() {
user := &User{name:"Frank"}
b, err := json.Marshal(user)
if err != nil {
fmt.Printf("Error: %s", err)
return;
}
fmt.Println(string(b))
}
Lalu ketika saya mencoba menjalankannya saya mendapatkan ini:
$ 6g test.go && 6l -o test test.6 && ./test
{}
`json:"name"`
ke akhir definisi bidang struct untuk mempertahankan nama output.Masalah terkait:
Saya mengalami masalah saat mengubah struct ke JSON, mengirimkannya sebagai respons dari Golang, kemudian, menangkap yang sama di JavaScript melalui Ajax.
Buang banyak waktu, jadi postingkan solusinya di sini.
In Go:
Dalam JavaScript:
Semoga ini bisa membantu seseorang.
Semoga berhasil.
sumber
Nilai Struct dikodekan sebagai objek JSON. Setiap bidang struct yang diekspor menjadi anggota objek kecuali:
Nilai kosong adalah false, 0, sembarang nil pointer atau nilai antarmuka, dan setiap array, slice, map, atau string dengan panjang nol. String kunci default objek adalah nama bidang struct tetapi dapat ditentukan dalam nilai tag bidang struct. Kunci "json" dalam nilai tag bidang struct adalah nama kunci, diikuti oleh koma dan opsi opsional.
sumber
Anda dapat menentukan metode MarshalJSON dan UnmarshalJSON kustom Anda sendiri dan dengan sengaja mengontrol apa yang harus dimasukkan, mis:
sumber