dongyisa6254 2016-03-13 01:57
浏览 47
已采纳

从字节数组创建结构

I use the json.Marshal interface to accept a map[string]interface{} and convert it to a []byte (is this a byte array?)

data, _ := json.Marshal(value)
log.Printf("%s
", data)

I get this output

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

The underlying bytes pertain to the struct of the below declaration

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"`
}

I'd like to take data and generate a variable of type Person struct

How do I do that?

  • 写回答

1条回答 默认 最新

  • duanbianweng5353 2016-03-13 02:11
    关注

    You use json.Unmarshal:

    package main
    
    import (
        "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
    ", p)
    }
    

    Output:

    main.Person{Name:"joe", StreetAddress:"123 Anywhere Anytown", Output:"Hello World", Status:1, EmailAddress:"joe@me.com"}
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 SPSS分类模型实训题步骤
  • ¥15 求解决扩散模型代码问题
  • ¥15 工创大赛太阳能电动车项目零基础要学什么
  • ¥20 limma多组间分析最终p值只有一个
  • ¥15 nopCommerce开发问题
  • ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
  • ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决
  • ¥15 pycharm输出和导师的一样,但是标红
  • ¥15 想问问富文本拿到的html怎么转成docx的
  • ¥15 我看了您的文章,遇到了个问题。