我有一个这样的结构体:
package main
import (
"encoding/json"
"fmt"
)
type request struct {
Version string `json:"version"`
Operations map[string]operation `json:"operations"`
}
type operation struct {
Type string `json:"type"`
Width int `json:"width"`
Height int `json:"height"`
}
func main() {
jsonStr := "{\"version\": \"1.0\", \"operations\": {\"0\": {\"type\": \"type1\", \"width\": 100}, \"1\": {\"type\": \"type2\", \"height\": 200}}}"
req := request{
Version: "1.0",
}
err := json.Unmarshal([]byte(jsonStr), &req)
if err != nil {
fmt.Println(err.Error())
} else {
fmt.Println(req)
}
}
我可以将Version =“1.0”设置为其默认值,但是如何将默认值设置为Width和Height?
json
似乎不是有效的,Unmarshal
返回一个错误,所以在那个Unmarshal
前面抛出一个err :=
,我相信你能自己调试它,但现在我真的不太理解你的问题,你正在使用一个float
替代一个int32
,而且你的json
似乎不是有效的。 - Datsik