登录
首页 >  Golang >  Go问答

自定义值映射的解析

来源:stackoverflow

时间:2024-02-24 10:45:14 448浏览 收藏

有志者,事竟成!如果你在学习Golang,那么本文《自定义值映射的解析》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我已经为地图创建了自定义类型。我想解组一个数组 json 响应到地图中。每次收到响应时,映射的键值都会发生变化。我遇到的问题是解组函数未正确映射到自定义值。

    type id map[string]yp

    type yp struct {
        f1      string              
        f2      int     
    }   

    func main() {
        data := []byte("[{\"unique1\":{\"f1\":\"1\",\"f2\":\"2\"}},{\"unique2\":{\"f1\":\"4\",\"f2\":\"7\"}}]")
        var i []id
        json.Unmarshal(data,&i)
        fmt.Printf("%v",i)
    }

正确答案


由于f2的源值为字符串,因此需要添加字段标签:

package main

import (
   "encoding/json"
   "fmt"
)

var data = []byte(`
[
   {
      "unique1": {"f1": "1", "f2": "2"}
   }, {
      "unique2": {"f1": "4", "f2": "7"}
   }
]
`)

func main() {
   var ids []map[string]struct {
      F1 string              
      F2 int `json:"f2,string"`
   }
   json.Unmarshal(data, &ids)
   // [map[unique1:{F1:1 F2:2}] map[unique2:{F1:4 F2:7}]]
   fmt.Printf("%+v\n", ids)
}

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

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