golang 解析可变类型 json 字段

在接入一些php后台时,可能会遇到返回的json字段类型变化的情况(即字段类型不规范的情况)。
这时候可以选择简单的用interface去解析。
当然,还可以使用json.RawMessage来更好的匹配情况。

{
  "code": 0,
  "data": "xxx",
  "error": []
}
{
  "code": -3031,
  "data": "xxx",
  "error": {
    "code": -3031,
    "msg": "密码错误"
  }
}

这里error字段其实是可以根据外部code是否为0来判断类型的。

还有一种办法是对error这个struct定义一个unmarshal方法。

type Error interface{}

func (e Error) Unmarshal() {
}
Show Comments