我的目标是动态选择结构类型来解组 json。如果我使用指向 struct 的指针 - 它可以正常工作并按预期将 json 解析为 struct,但如果我使用 struct 然后获取指向它的指针并进行解组,它会将其解组为 map[string]interface{} 而不是 struct。
我究竟做错了什么?
https://play.golang.org/p/AkaCt_f69GV
package main
import (
"fmt"
"encoding/json"
)
type Person struct {
Name string
}
var source = []byte(`{"Name":"Dan"}`)
func main() {
parse1()
parse2()
}
func parse1() {
var value interface{}
value = new(Person)
json.Unmarshal(source, value)
// {Dan}
fmt.Println(*(value.(*Person)))
}
func parse2() {
var value interface{}
value = Person{}
json.Unmarshal(source, &value)
// map[Name:Dan]
fmt.Println(value)
}
婷婷同学_
相关分类