美文网首页
go JSON和struct的转换 2021-09-04

go JSON和struct的转换 2021-09-04

作者: 9_SooHyun | 来源:发表于2021-09-04 23:15 被阅读0次
    • golang JSON和struct的转换,[]byte作为中介

      • Json to struct:

        json string -> []byte -> struct

        其中,[]byte -> struct这一步use json.Unmarshal(data []byte, v interface{})

        • json.Unmarshal 到 map

          package main
          
          import "fmt"
          import "encoding/json"
          
          func main () {
            s := "{\"abc\":1}"
            var data = map[string]int{"ab":2}
            err := json.Unmarshal(([]byte)(s), &data)
            if err != nil {
                fmt.Println(err)
                return
            }
            fmt.Println(data)
          }
          >>>
          map[ab:2 abc:1]  // 不影响原来的k v
          
          package main
          
          import "fmt"
          import "encoding/json"
          
          func main () {
            s := "{\"abc\":1}"
            var data = map[string]int{"abc":2}
            err := json.Unmarshal(([]byte)(s), &data)
            if err != nil {
                fmt.Println(err)
                return
            }
            fmt.Println(data)
          }
          >>>
          map[abc:1]  // 覆盖原有k v
          
        • json.Unmarshal 到 slice

          package main
          
          import "fmt"
          import "encoding/json"
          
          func main () {
            s := "[\"abc\",1]"
            var data = []interface{}{"ab",2}
            fmt.Println("ori data is ", data)
            err := json.Unmarshal(([]byte)(s), &data)
            if err != nil {
                fmt.Println(err)
                return
            }
            fmt.Println("after unmarshal data is ", data)
          }
          >>>
          ori data is  [ab 2]
          after unmarshal data is  [abc 1]  // unmarshal到slice会先清空再写入
          
      • struct to JSON:

        struct -> []byte -> json string

        其中,struct -> []byte这一步use json.Marshal(v interface{})

      • More info see: https://sanyuesha.com/2018/05/07/go-json/

    相关文章

      网友评论

          本文标题:go JSON和struct的转换 2021-09-04

          本文链接:https://www.haomeiwen.com/subject/cwpdwltx.html