JSON处理 json转struct
⎯⎯ 水深则缓流,语迟则人贵。做人需淡泊,方能无忧;交人要真诚,才能长久。午安

json转struct

 2340  |   | 


     
说 明

json转struct



功能介绍

1.支持解析嵌套 json 串, 根据递归进行解析嵌套对象
2.支持解析数组 json 串, 会取数组中第一个 json 串进行解析 3.支持注入自定义 tag
4.检查 json 串格式是否正确, 输出错误的位置



示例

解析嵌套 json 串

{
 "name": "test",
 "age": 10,
 "addr": "四川成都",
 "cls_info": [
  {
   "name": "篮球班",
   "teacher": "张老师"
  },
  {
   "name": "美术班",
   "teacher": "李老师"
  }
 ]
}

处理后

type GenerateStruct struct {
 Name string `json:"name,omitempty"`
 Age int `json:"age,omitempty"`
 Addr string `json:"addr,omitempty"`
 ClsInfo []ClsInfo `json:"cls_info,omitempty"`
}

type ClsInfo struct {
 Name string `json:"name,omitempty"`
 Teacher string `json:"teacher,omitempty"`
}  

直接解析数组 json 串

[
 {
  "name": "test",
  "age": 10,
  "addr": "四川成都",
  "cls_info": [
   {
    "name": "篮球班",
    "teacher": "张老师"
   },
   {
    "name": "美术班",
    "teacher": "李老师"
   }
  ]
 },
 {
  "name": "test2",
  "age": 10,
  "addr": "四川成都",
  "cls_info": [
   {
    "name": "篮球班",
    "teacher": "张老师"
   },
   {
    "name": "美术班",
    "teacher": "李老师"
   }
  ]
 }
]

处理后

type GenerateStruct struct {
 Name string `json:"name,omitempty"`
 Age int `json:"age,omitempty"`
 Addr string `json:"addr,omitempty"`
 ClsInfo []ClsInfo `json:"cls_info,omitempty"`
}

type ClsInfo struct {
 Name string `json:"name,omitempty"`
 Teacher string `json:"teacher,omitempty"`
}