猿问

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

使用 PHP 和 Javascript(和 Node)解析 JSON 是一个非常简单的操作。从它的外观来看,Go 是相当复杂的。考虑下面的例子


package main


import ("encoding/json";"fmt")


type fileData struct{

 tn string

 size int

}


type jMapA map[string] string

type jMapB map[string] fileData


func 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 Node

compiled N

fast maybe

然而,parseMapB()返回


map[f1:{ 0}, f2:{ 0}]

f2 { 0}

f1 { 0}

我刚开始使用 Go 的几个小时,所以我想我在这里做错了什么。但是,我不知道那可能是什么。我非常感谢任何帮助。更一般地说,Go 等价于 Node 代码是什么?


for(p in obj){

 doSomethingWith(obj[p]);

}


在围棋?


不负相思意
浏览 243回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答