登录
首页 >  Golang >  Go问答

正确的方法将 JSON 字符串转换为对象

来源:stackoverflow

时间:2024-03-21 21:49:35 312浏览 收藏

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《正确的方法将 JSON 字符串转换为对象》,文章讲解的知识点主要包括,如果你对Golang方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

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

但我不明白如何使用它作为我的管道的一个步骤。


解决方案


你走在正确的轨道上。 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

更多信息:https://blog.golang.org/json-and-go

今天关于《正确的方法将 JSON 字符串转换为对象》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>