Golang 解析json

  • Post author:
  • Post category:golang


如果json是map结构

strJson

{
	"总就业人数": 1375.66,
	"第一产业": 40.83,
	"第二产业": 422.82,
	"省代码": 310000.0,
	"省": "上海市",
	"市代码": 310000.0,
	"市": "上海市",
	"类型": "直辖市"
}
var f interface{}
json.Unmarshal([]byte(strJson), &f)
if reflect.TypeOf(f).Kind() == reflect.Map {
	m := reflect.ValueOf(f).Interface().(map[string]interface{})
	fmt.Println(m)
}

运行结果:

在这里插入图片描述

如果json是slice结构

strJson

[{
	"showname": "总就业人数",
	"name": "总就业人数",
	"class": "float"
}, {
	"showname": "第一产业",
	"name": "第一产业",
	"class": "float"
}, {
	"showname": "第二产业",
	"name": "第二产业",
	"class": "float"
}, {
	"showname": "省代码",
	"name": "省代码",
	"class": "float"
}, {
	"showname": "省",
	"name": "省",
	"class": "text"
}, {
	"showname": "市代码",
	"name": "市代码",
	"class": "float"
}, {
	"showname": "市",
	"name": "市",
	"class": "text"
}, {
	"showname": "类型",
	"name": "类型",
	"class": "text"
}]
var f interface{}
json.Unmarshal([]byte(str), &f)
if reflect.TypeOf(f).Kind() == reflect.Slice {
	s := reflect.ValueOf(f)
	for i := 0; i < s.Len(); i++ {
		ele := s.Index(i).Interface().(map[string]interface{})
		fmt.Println(ele)
	}
}

运行结果:

在这里插入图片描述



版权声明:本文为xzw12138原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。