我有以下Go代码
type Version struct {
Name string `json: "name"`
Project string `json: "project"`
ProjectId int `json: "projectId"`
}
b := new(bytes.Buffer)
if err := json.NewEncoder(b).Encode(&Version{"foo", "bar", 42}); err != nil {
log.Fatal(err)
return false
}
fmt.Printf("JSON %v", b)
输出结果为:
{"Name":"foo","Project":"bar","ProjectId": 42}
而不是:
{"name":"foo","project":"bar","projectId": 42}
有什么想法?
由于
答案 0 :(得分:3)
你的struct标签不合适,所以解析器没有按预期工作
package main
import (
"bytes"
"encoding/json"
"fmt"
"log"
)
type Version struct {
Name string `json:"name"`
Project string `json:"project"`
ProjectId int `json:"project_id"`
}
func main() {
b := new(bytes.Buffer)
if err := json.NewEncoder(b).Encode(&Version{"foo", "bar", 42}); err != nil {
log.Fatal(err)
}
fmt.Printf("JSON %v", b)
}
按预期工作