[英]Unmarshall json reference types
我正在尝试编写一个工作示例来测试此链接的 “引用类型”部分。
但是我不知道这应该如何工作。 下面提供了我尝试编写而没有成功的示例,仅供参考:
package main
import (
"fmt"
"log"
"encoding/json"
)
type Foo1 struct {
Val int
}
type Foo2 struct {
Name string
}
type IncomingMsg struct {
F1 *Foo1
F2 *Foo2
}
func main() {
b := []byte(`{"F1" : {"Val":13}}`)
// b := []byte(`{"F2" : {"Name":"Hello"}}`)
var msg IncomingMsg
err := json.Unmarshal(b, &msg)
if err != nil {
log.Fatal(err)
}
if msg.F1 != nil {
fmt.Println(msg.F1.Val)
}
if msg.F2 != nil {
fmt.Println(msg.F2.Name)
}
}
你们中有更多使用Go经验的人可以解决此问题吗?
编辑:提供的测试已更新,现在可以按预期工作。 谢谢亚当先生提供的答案,这对我理解这个问题大有帮助! :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.