请问Golang应该如何处理复杂json类型的数据?
> 类型1
{
"id":1,
"result": [{
"topics": ["bbbbbbbb"],
"payload": "aaaaa...",
...//多字段
}]
}
类型2
{
id:2,
"result": ["aaaaaaaaaa"]
}
类型3
{
id:2,
"result": ["aaaaaaaaaa", "bbbbbbbbbbb"]
}
type Contents struct{
Result interface{}
}
请问应该如何定义 Result 的类型来兼容这三种类型的json?
Result map[string]interface{} // 这种类型能够处理多层嵌套的json但是无法处理 单个值的json
如果是网络请求的响应结果,数据结构尽可能应该统一,JSON 数组中的子类型数据结构可通过工具 JSON-to-Go https://mholt.github.io/json-to-go 自动生成;如果无法统一子类型,取值时需要对 interface 做类型推断。