go在線工具集
首頁
搜索
插件
致boss

json轉struct
14990  |   |   |  113

功能介紹

  1. 支援解析嵌套 JSON 字串,根據遞迴進行解析嵌套對象
  2. 支援解析陣列 JSON 字串,會取陣列中的第一個 JSON 字串進行解析
  3. 支援注入自定義標籤
  4. 檢查 JSON 字串格式是否正確,輸出錯誤的位置
  5. 支援逐行解析註解

範例

解析嵌套 JSON 字串

{
    "name": "test", // 姓名
    "age": 10, // 年齡
    "addr": "四川成都", // 地址
    "cls_info": [ // 班級
        {
            "name": "籃球班", // 班名
            "teacher": "張老師" // 老師
        },
        {
            "name": "美術班", // 班名
            "teacher": "李老師" // 老師
        }
    ]
}

處理後:

type ClsInfo struct {
    Name    string `json:"name"`    // 班名
    Teacher string `json:"teacher"` // 老師
}

type GenerateObj struct {
    Name    string    `json:"name"`    // 姓名
    Age     int       `json:"age"`     // 年齡
    Addr    string    `json:"addr"`    // 地址
    ClsInfo []ClsInfo `json:"cls_info"` // 班級
}

直接解析陣列 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"`
}