回答

收藏

将 Go 地图转换为 json

技术问答 技术问答 263 人阅读 | 0 人回复 | 2023-09-12

我尝试使用encoding/jsonMarshal将 Go 地图转换为 json 字符串,但结果是空字符串。
/ d' b# m1 Q* ?) I: i3 l) |% \这是我的代码:0 \8 ~4 D& K* q) F- B9 e

    * l% D  ]% Q! U( H5 Q! u) M* Y# B
  • package mainimport  "encoding/json"    "fmt")type Foo struct    Number int    `json:"number"`    Title  string `json:"title"`}func main()    datas := make(map[int]Foo)    for i := 0; i 我的输出是:[code]map[9:{1 test} 2:{1 test} 7:{1 test} 3:{1 test} 4:{1 test} 5:{1 test} 6:{1 test} 8:{1 test} 0:{1 test} 1:{1 test}][]7 {3 |( ?* W5 a6 ]
我真的不知道我错在哪里。谢谢你的帮助。
7 E$ H5 p9 H  O# p; Z. N                                                                " Z6 g; g' T3 h3 {5 t7 w
    解决方案:                                                                % ]2 p' W) g" k  c& p1 z
                                                                如果你发现了错误,你会看到这一点:
1 u& T) U9 r/ T+ Z/ E) ?
    jsonString,err := json.Marshal(datas)fmt.Println(err)// [] json: unsupported type: map[int]main.Foo, Q) m7 V7 I3 [8 N+ s9 \
问题是你不能在 JSON 使用整数作为键;这是禁止的。相反,您可以提前将这些值转换为字符串,例如strconv.Itoa.
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则