当尝试对匿名结构进行编组时,为什么会得到 {}
?
package main
import (
"encoding/json"
"fmt"
"os"
)
func main() {
js, err := json.Marshal(struct{id int}{123})
if err != nil {
fmt.Println("error:", err)
}
os.Stdout.Write(js)
}
当尝试对匿名结构进行编组时,为什么会得到 {}
?
package main
import (
"encoding/json"
"fmt"
"os"
)
func main() {
js, err := json.Marshal(struct{id int}{123})
if err != nil {
fmt.Println("error:", err)
}
os.Stdout.Write(js)
}
https://play.golang.org/p/XNAKovWGhxk
package main
import (
"encoding/json"
"fmt"
"os"
)
func main() {
jsonString, err := json.Marshal(
struct{
Id int `json:"theKeyYouWantToUse"`
} {
123
},
)
if err != nil {
fmt.Println("error:", err)
}
os.Stdout.Write(jsonString)
}
您没有导出 id 属性,请将其更改为 Id。
id
字段,因为它没有被导出。struct{id int}{123}
您需要将它们导出以保留转换过程。
在Go语言中,如果名称以大写字母开头,则表示该名称已被导出。
js, _ := json.Marshal(struct{Id int}{123})
os.Stdout.Write(js)
// {"Id":123}
os.Stdout.Write()
?fmt.Print
直接转发到它。 - Kaedys