我有一个用Go编写的Beam管道,我想转换此输入:
{"name": "Bob", "age": 32}
指向有效的“对象”。
go sdk在编码包中具有此功能:
// UnmarshalJSON sets the state of this instance from the passed in JSON.
func (w *EncodedType) UnmarshalJSON(buf []byte) error {
var s string
if err := json.Unmarshal(buf, &s); err != nil {
return err
}
t, err := graphx.DecodeType(s)
if err != nil {
return err
}
w.T = t
return nil
}
但是我不知道如何将其用作我的开发流程的一步。
答案 0 :(得分:2)
您处于正确的轨道。就编程而言,Go在通常意义上没有“对象”。您将使用这样的结构:
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
您将使用它来解组该结构,如下所示:
var myUser User
err := json.Unmarshal([]byte(`{"name": "Bob", "age": 32}`), &myUser)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(myUser.Name, myUser.Age)
这是一个游乐场示例:https://play.golang.org/p/_uHZ9Q_j-p1