为了账号安全,请及时绑定邮箱和手机立即绑定

Golang - 使用/迭代 JSON 解析映射

Golang - 使用/迭代 JSON 解析映射

Go
不负相思意 2021-10-18 10:27:07
使用 PHP 和 Javascript(和 Node)解析 JSON 是一个非常简单的操作。从它的外观来看,Go 是相当复杂的。考虑下面的例子package mainimport ("encoding/json";"fmt")type fileData struct{ tn string size int}type jMapA map[string] stringtype jMapB map[string] fileDatafunc parseMapA(){ var dat jMapA s := `{"lang":"Node","compiled":"N","fast":"maybe"}` if err := json.Unmarshal([]byte(s), &dat); err != nil {  panic(err) } fmt.Println(dat); for k,v := range dat{  fmt.Println(k,v) }}func parseMapB(){ var dat jMapB s := `{"f1":{"tn":"F1","size":1024},"f2":{"tn":"F2","size":2048}}` if err := json.Unmarshal([]byte(s), &dat); err != nil {  panic(err) } fmt.Println(dat); for k,v := range dat{  fmt.Println(k,v) }}func main() { parseMapA() parseMapB()    }该parseMapA()呼叫乖乖返回map[lang:Node Compiled:N fast:maybe]lang Nodecompiled Nfast maybe然而,parseMapB()返回map[f1:{ 0}, f2:{ 0}]f2 { 0}f1 { 0}我刚开始使用 Go 的几个小时,所以我想我在这里做错了什么。但是,我不知道那可能是什么。我非常感谢任何帮助。更一般地说,Go 等价于 Node 代码是什么?for(p in obj){ doSomethingWith(obj[p]);}在围棋?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 242 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信