我使用golang来解析json字符串:
str:="{...}"
var f interface{}
json.Unmarshal([]byte(str), f)
fmt.Println(f)
我在控制台中获得了nil
。
当我将代码更改为:
时 json.Unmarshal([]byte(str), &f)
它将打印json字符串。
发生了什么事?
答案 0 :(得分:4)
发生了两件事:
json.Unmarshal
的返回值以检查错误。来自https://github.com/red/code/tree/master/Library/OpenGL:
func Unmarshal(data []byte, v interface{}) error
Unmarshal解析JSON编码的数据,并将结果存储在v指向的值中。如果v为nil或者不是指针,则Unmarshal返回InvalidUnmarshalError。
Unmarshal
需要一个interface{}
因为它可以解组成各种事物(切片,地图,结构......),如文档中所述。