猿问

如何正确将 json 字符串转换为对象

我有一个用 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

}

但我不明白如何将其用作我的管道的步骤。


PIPIONE
浏览 90回答 1
1回答

繁花不似锦

你走在正确的轨道上。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)
随时随地看视频慕课网APP

相关分类

Go
我要回答