为什么{}在尝试封送匿名结构时会得到提示?
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)
}
Run Code Online (Sandbox Code Playgroud)
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)
}
Run Code Online (Sandbox Code Playgroud)
您没有导出id属性,请将其更改为ID
如果使用以下结构,Marshal 方法将忽略,id因为它未导出。
struct{id int}{123}
Run Code Online (Sandbox Code Playgroud)
您需要导出它们以保持它们在转换过程中。
在 Go 中,如果名称以大写字母开头,则会导出名称
js, _ := json.Marshal(struct{Id int}{123})
os.Stdout.Write(js)
// {"Id":123}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2222 次 |
| 最近记录: |