目录

1:json 结构demo

2:go解析处理json转map


1:json 结构demo

//json格式
{
  "region_1": {
    "name": "leyangjun",
    "age":"18",
    "province":"北京",
  },
  "region_2": {
    "name": "zhangsan",
    "age":"18",
    "province":"上海",
  }
}

2:go解析处理json转map(多层嵌套)

//jsonStr为上面的json字符
printInfo := make(map[string]interface{})
jsonErr = json.Unmarshal([]byte(addressInfo.PrintInfo), &jsonStr)
if jsonErr != nil {
    fmt.Println("json解析错误")
	return
} else {
	for k, v := range jsonStr {
        fmt.Println("对应地区信息",k)

        //获取对应的name值
        //读取嵌套map的时候,不能采用v["name"]的方式,会报type interface {} does not support indexing,需要先如下处理:
        //如果遇到类型不一致的需要强转下类型
	    name := v.(map[string]interface{})["name"].(string)
        

        fmt.Println("姓名为",name)
		return
	}
}

注意📢:

读取嵌套map的时候,不能采用v["name"]的方式,会报type interface {} does not support indexing,需要先如下处理:v.(map[string]interface{})["name"]