在阅读了JSON 和 Go 之后,我确实了解了在 Go 中解码 json 的基础知识。但是,存在这个问题,输入 json 有时可以是地图,有时是地图数组。
考虑以下问题:
package main
import (
"encoding/json"
"fmt"
)
func main() {
b := []byte(`[{"email":"example@test.com"}]`)
c := []byte(`{"email":"example@test.com"}`)
var m interface{}
json.Unmarshal(b, &m)
switch v := m.(type) {
case []interface{}:
fmt.Println("this is b", v)
default:
fmt.Println("No type found")
}
json.Unmarshal(c, &m)
switch v := m.(type) {
case map[string]interface{}:
fmt.Println("this is c", v)
default:
fmt.Println("No type found")
}
}
现在,我如何获得价值email:example@test.com在这两种情况下(b& c)
问题:
如果 json 是一个数组,我想遍历每个并打印电子邮件。
如果json是地图,我想直接打印email
播放:http : //play.golang.org/p/UPoFxorqWl
白猪掌柜的
蓝山帝景
胡说叔叔
相关分类