我正在使用一个API,它对某个特定字段的响应有时是对象,有时是对象数组。
我创建了一个结构来解组json响应,它运行得很好。但是,在json响应具有对象数组的情况下,显然解组失败。我怎样才能在Go中处理这种情况?
Single Response:
{
"net": {
"comment": {
"line": {
"$": "This space is statically assigned",
"@number": "0"
}
}
}
}
Array Response:
{
"net": {
"comment": {
"line": [
{
"$": "All abuse issues will only be responded to by the Abuse",
"@number": "0"
},
{
"$": "Team through the contact info found on handle ABUSE223-ARIN",
"@number": "1"
}
]
}
}
}
我考虑过创建2个版本的结构,然后以某种方式确定我找回了哪个实例,但这感觉非常浪费。我也尝试过解组到map [string] instance {}但是我有点迷失,并且不确定我是不是走向了正确的道路。
任何建议都将受到赞赏。
答案 0 :(得分:2)
您是否尝试过unmarshall into map [string] interface {}?
type Net struct{
Comment map[string]interface{} `json:"comment"`
}
然后注释[“line”]值可能是数组或对象。