从字节数组创建结构

我使用json.Marshal接口接受 amap[string]interface{}并将其转换为 a []byte(这是一个字节数组吗?)


data, _ := json.Marshal(value)

log.Printf("%s\n", data)

我得到这个输出


{"email_address":"joe@me.com","street_address":"123 Anywhere Anytown","name":"joe","output":"Hello World","status":1}

底层字节属于以下声明的结构


type Person struct {

    Name           string  `json:"name"`

    StreetAddress  string  `json:"street_address"`

    Output         string  `json:"output"`

    Status         float64 `json:"status"`

    EmailAddress   string  `json:"email_address",omitempty"`

}

我想获取data并生成一个类型的变量Person struct


我怎么做?


慕虎7371278
浏览 163回答 1
1回答

小怪兽爱吃肉

你使用json.Unmarshal:package mainimport (    "encoding/json"    "fmt")type Person struct {    Name          string  `json:"name"`    StreetAddress string  `json:"street_address"`    Output        string  `json:"output"`    Status        float64 `json:"status"`    EmailAddress  string  `json:"email_address",omitempty"`}func main() {    data := []byte(`{"email_address":"joe@me.com","street_address":"123 Anywhere Anytown","name":"joe","output":"Hello World","status":1}`)    var p Person    if err := json.Unmarshal(data, &p); err != nil {        panic(err)    }    fmt.Printf("%#v\n", p)}输出:main.Person{Name:"joe", StreetAddress:"123 Anywhere Anytown", Output:"Hello World", Status:1, EmailAddress:"joe@me.com"}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go