我完全是 Golang 的菜鸟,非常感谢以下方面的任何帮助
我有这段代码片段,运行良好
var settings CloudSettings
type CloudSettings struct {
...
A1 *bool `json:"cloud.feature1,omitempty"`
...
}
err = json.NewDecoder(request.Body).Decode(&settings)
An attempt to send an invalid string would raise this error:
curl ... -d '{"cloud.feature1" : "Junk"}'
"message":"Error:strconv.ParseBool: parsing \"Junk\": invalid syntax Decoding request body."
现在,我们有一个单独的LocalSettings结构,同样的功能需要有条件地处理云/本地设置解码
于是,代码改为:
var settings interface{} = CloudSettings{}
// If the request header says local settings
settings = LocalSettings{}
/* After this change Decode() no longer raises any error for invalid strings and accepts anything */
err = json.NewDecoder(request.Body).Decode(&settings)
所以问题是为什么我会看到这种行为,我将如何解决这个问题?
如果我有 2 个单独的settings变量,那么从那一点开始的整个代码将只是重复,我想避免
SMILET
12345678_0001
相关分类