不区分大小写
golang 结构体(以下简称 struct)字段名称、struct tag(以下简称 tag)、和 json 字符串(以下简称 json)中的字段名之间不区分大小写,互相转换时,会优先检测是否存在 json 的 tag(且仅限于 json 的 tag),如果存在则优先和 tag 比较,未导出字段不参与转换。

  • struct -> json
    生成的字符串会优先使用 tag 作字段名,否则使用 struct 的字段名。
  • json -> struct
    json 字符串会优先按 json 的 tag 进行不区分大小写的匹配,如果匹配失败则忽略该字段;如果没有 json tag,则会按 struct 的字段名进行不区分大小写的匹配。