0
点赞
收藏
分享

微信扫一扫

GoLang 对于Json的操作方式

王远洋 2022-05-05 阅读 75

GoLang 对于Json的操作

  • 简单的将map结构的json转换为map
func main() {
	jsonStr := "{" +
		"\"总就业人数\": 1375.66," +
		"\"第一产业\": 40.83," +
		"\"第二产业\": 50.43," +
		"\"省代码\": 310000.0," +
		"\"省\": \"上海市\"" +
		"}"
	var f map[string]interface{}
	if err := json.Unmarshal([]byte(jsonStr), &f); err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(f["总就业人数"])
	fmt.Println(f["第一产业"])
	fmt.Println(f["第二产业"])
	fmt.Println(f["省代码"])
	fmt.Println(f["省"])
}
  • slice同理
    json文件格式
[{
  "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"
}]
func main() {
	//先去本地读取json文件到内存中
	fileInfo, err := os.Stat("json1.json")
	if err != nil {
		fmt.Println("Stat 失败!!!")
		return
	}
	file, err := os.Open("json1.json")
	if err != nil {
		fmt.Println("打开文件错误!!!")
		return
	}
	slice := make([]byte, fileInfo.Size())
	len, err := file.Read(slice)
	if err != nil {
		fmt.Println("读取文件失败....")
		return
	}
	var sliceJson []map[string]interface{}
	json.Unmarshal(slice[:len], &sliceJson)
	fmt.Println(sliceJson)
}
举报

相关推荐

0 条评论