2 回答
TA贡献1806条经验 获得超5个赞
你可以尝试用这个:
type section struct {
ID interface{} `json:"section_id"`
Name string `json:"section_name"`
}
dec := json.NewDecoder(requestBody)
dec.UseNumber()
var sections []section
if err := dec.Decode([]byte(request.Body), §ions); err != nil {
println(err)
}
for _, section := range sections {
if reflect.TypeOf(section.ID).String() == "string" {
// block 1
} reflect.TypeOf(section.ID).String() == "json.Number" {
n := section.ID.Int64()
// block 2
}
}
TA贡献1827条经验 获得超7个赞
有几种方法可以做到这一点:
type Section struct {
ID interface{} `json:"section_id"`
SectionName string `json:"section_name"
}
for _, section := range sections {
if str,ok:=section.ID.(string); ok {
} else if number, ok:=section.ID.(float64); ok {
}
}
或者:
type Section struct {
ID json.RawMessage `json:"section_id"`
SectionName string `json:"section_name"
}
for _, section := range sections {
if value, err:=strconv.Atoi(string(section.ID)); err==nil {
} else {
}
}
- 2 回答
- 0 关注
- 113 浏览
添加回答
举报