GO语言实战十三 标准库解码JSON

2023年7月21日09:05:49

解析JSON

返回json

{
    "code": "200",
    "msg": "success",
    "data": [
        {
            "id": "0010",
            "areaname": "北京市"
        }
    ]
}

解析代码

package main

import (
	"encoding/json"
	"fmt"
	"log"
	"net/http"
)

type (
	resData struct {
		Id       string `json:"id"`
		Areaname string `json:"areaname"`
	}

	result struct {
		Code string    `json:"code"`
		Msg  string    `json:"msg"`
		Data []resData `json:"data"`
	}
)

func main() {
	url := "http://***/frontend/organ/city"

	res, error := http.Get(url)
	if error != nil {
		log.Println(error)
		return
	}
	//io.Copy(os.Stdout, res.Body)

	var gr result

	defer res.Body.Close()

	err := json.NewDecoder(res.Body).Decode(&gr)
	if err != nil {
		log.Println("Error: ", err)
		return
	}
	fmt.Println(gr)
}

输出

{200 success [{0010 北京市} {0020 广州市} {0021 上海市} {0022 天津市} {0023 重庆市} {0024 沈阳市} {0025 南京市} {0027 武汉市} {0028 成都市} {0029 西安市} {0431 长春市} {0510 无锡市} {0511 镇江市} {0512 苏州市} {0519 常州市} {0531 济南市} {0532 青岛市} {0535 烟台市} {0553 芜湖市} {0571 杭州市} {0574 宁波市} {0591 福州市} {0731 长沙市} {0755 深圳市} {0757 佛山市} {0851 贵阳市}]}

编码json

代码实现

package main

import (
	"encoding/json"
	"fmt"
)

/**
 * 编码json
 */
func main() {
	//创建一个map映射
	c := make(map[string]interface{})
	c["name"] = "cdb"
	c["sex"] = "男"
	c["mayjor"] = map[string]interface{}{
		"backend":  "PHP,JAVA,GOLANG",
		"frontend": "JS,VUE,HTML",
	}

	//序列化到JSON
	data, err := json.MarshalIndent(c, "", "")
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println("====")
	fmt.Println(string(data))
}

输出

{
"mayjor": {
"backend": "PHP,JAVA,GOLANG",
"frontend": "JS,VUE,HTML"
},
"name": "cdb",
"sex": "男"
}

  • 作者:coder~
  • 原文链接:https://blog.csdn.net/chai471793/article/details/103976726
    更新时间:2023年7月21日09:05:49 ,共 1263 字。