复制Go结构体 校验Json

Json转Go工具

本页面免费为大家提供Json转Go,Json生成Golang结构体,json转go结构体,json生成go struct结构,可以勾选是否内联类型定义,快速将json转为可用的go结构体等,免费提供给需要的朋友使用。

JSON 格式数据简介

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。

它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。
这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

Go 语言struct结构体简介

学习过Go语言的朋友应该都知道,Go语言没有class,而是通过struct定义成员字段、通过receiver接收method实现成员方法。

Go语言本身没有继承功能,但可以通过struct嵌套结构来实现类似继承的功能。

JSON用于web传输数据有着极大的效率优势与操作便捷性。而json与struct之间的转换也是Go程序员经常会遇到的情况
 

JSON原代码

type JSONData struct {
	Name string `json:"name"`
	Code int `json:"code"`
	List []struct {
		Day int `json:"day"`
	} `json:"list"`
}

转换后GO结构体

package main

import (
    "encoding/json"
    "fmt"
)

type JSONData struct {
    Name string `json:"name"`
    Code int    `json:"code"`
    List []List `json:"list"`
}
type List struct {
    Day int `json:"day"`
}

func main() {
    var jsonData JSONData
    jsonData.List = append(jsonData.List, List{1})
    jsonData.List = append(jsonData.List, List{2})

    respJson := JSONData{
        Code: 1,
        Name: "小芳",
        List: jsonData.List,
    }
    b, err := json.Marshal(respJson)
    if err != nil {
        fmt.Println("JSON ERR:", err)
    }
    fmt.Println(string(b))
}