我想你要找的是encoding/json
包装中的RawMessage型.
文档说明:
键入RawMessage[]字节
RawMessage是一个原始的编码JSON对象.它实现了编组拆分器和解组程序,可用于延迟JSON解码或预计算JSON编码.
下面是使用RawMessage的一个工作示例:
package main
import (
"encoding/json"
"fmt"
)
var jsonStr = []byte(`{
"id" : 15,
"foo" : { "foo": 123, "bar": "baz" }
}`)
type Bar struct {
Id int64 `json:"id"`
Foo json.RawMessage `json:"foo"`
}
func main() {
var bar Bar
err := json.Unmarshal(jsonStr, &bar)
if err != nil {
panic(err)
}
fmt.Printf("%+v\n", bar)
}
输出:
{ID:15foo:[123 32 34 102 111 111 34 58 32 49 50 51 44 32 34 98 97 114 34 58 34 98 97 122 34 32 125]}
Playground个