寻求帮助。
假设我有以下结构。
type phoneStruct struct {
PhoneID string `json:"id"`
Carrier string `json:"carrier"`
}
type carStruct struct {
CarID string `json:"id"`
Model string `json:"model"`
}
两种截然不同的结构。但可以预测。
现在在我的代码中,我正在做的是执行POST请求,然后解析我返回的内容的主体,以便我可以对其进行一些测试断言。但为了简单起见,假设我有这个JSON
var jsonPhone = `{
"id": "123",
"carrier": "Rogers"
}`
var jsonCar = `{
"id": "foobar-fewf-434-fewf",
"model": "Civic"
}`
我想将这个json与我的结构相关联,所以我有以下调用:
p, err := parsePhone(jsonPhone)
c, err := parseCar(jsonCar)
这些函数看起来像这样
func parsePhone(body []byte) (*phoneStruct, error) {
var p = new(phoneStruct)
err := json.Unmarshal(body, p)
return p, err
}
func parseCar(body []byte) (*carStruct, error) {
var c = new(carStruct)
err := json.Unmarshal(body, c)
return c, err
}
..我想知道是否有一种方法可以只拥有一个结构。我知道两个或多个结构之间是否存在一些共性。或者如何解析未知结构。但是如果我知道结构,就无法找到资源。我怎么能有一个看起来像这样的函数..
func parseAnything(body []byte (<pointer to the struct>, error)
var c = new(someStruct)
err := json.Unmarshal(body, c)
return c, err
}
请注意,我将始终知道我在调用什么,因此我可以在我的解析函数中执行条件开关语句,该语句显示“if car..如果电话..'但我不确定如何定义回报。
子衿沉夜
慕村225694
相关分类