GO json.Unmarshal() 解析不区分json字段的大小写

GO json.Unmarshal() 解析不区分json字段的大小写


demo


package main

import (
	"encoding/json"
	"fmt"
)

type Demo struct {
	ABD string `json:"ABD"`
}

type Demo2 struct {
	ABD string `json:"ABD"`
	Abd string `json:"Abd"`
}

func main() {
	var demo Demo
	str := `{"abd": "123", "AbD":"qwe"}`
	//str2 := `{"ABD": "123", "Abd":"qwe"}`
	//str2 := `{"abd": "123", "Abd":"qwe"}`
	//str2 := `{"Abd": "123", "ABD":"qwe"}`
	err := json.Unmarshal([]byte(str), &demo)
	if err != nil {
		fmt.Println("json.Unmarshal err=", err)
	}
	fmt.Printf("%#+v", demo) // main.Demo{ABD:"123"}

	// 可以试试 Demo2 和 str2 的各种组合
	// 总结就是不要使用同名字段(忽视大小写后同名的字段)!!!
	// 特殊情况要用就必须保证 1.结构体要有tag 2.tag与json数据字段名一定要大小写一致
}

posted @   等你下课啊  阅读(662)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示