当前位置: 首页 > 工具软件 > Structr > 使用案例 >

Go json转struct工具

包丁雨
2023-12-01

一个很好用的工具集合的web页面,包含常用的json、base64、url、hash、加密等,最重要的是页面简洁干净。

名称为OKTools,地址如下:
https://oktools.net/json2go

这里说一下个人比较喜欢的一个工具,go语言的json转struct,当然我们也可以自己写一个,不过还是不要重复造轮子了。
https://oktools.net/json2go

例证说明

json
格式化json工具,https://www.json.cn/
非常好用,不过是有广告的

{
    "error":0,
    "data":{
        "roll_data":[
            {
                "author_extends":"",
                "depth_extends":"[]",
                "deny_comment":0,
                "level":"B",
                "reading_num":25782,
                "content":"国家统计局发布2020年国民经济和社会发展统计公报:初步核算,全年国内生产总值1015986亿元,比上年增长2.3%。",
                "in_roll":1,
                "recommend":1,
                "confirmed":0,
                "jpush":0,
                "img":"",
                "user_id":87,
                "is_top":0,
                "brief":"国家统计局发布2020年国民经济和社会发展统计公报:初步核算,全年国内生产总值1015986亿元,比上年增长2.3%。",
                "id":693665,
                "ctime":1614476012,
                "type":-1,
                "title":"",
                "bold":0,
                "sort_score":1614476012,
                "comment_num":0,
                "modified_time":1614476012,
                "status":1,
                "collection":0,
                "has_img":0,
                "category":"",
                "shareurl":"https://api3.cls.cn/share/article/693665?os=web&sv=7.5.5&app=CailianpressWeb",
                "share_img":"https://image.cailianpress.com/share/roll.png",
                "share_num":0,
                "sub_titles":[

                ],
                "tags":[

                ],
                "imgs":[

                ],
                "images":[

                ],
                "explain_num":-1,
                "stock_list":[

                ],
                "is_ad":0,
                "ad":{
                    "id":0,
                    "title":"",
                    "img":"",
                    "url":"",
                    "monitorUrl":"",
                    "video_url":"",
                    "adTag":"",
                    "fullScreen":0
                },
                "subjects":null,
                "audio_url":[
                    "https://image.cailianpress.com/admin/20210228/093332av5ywufInPHj.mp3",
                    "https://image.cailianpress.com/admin/20210228/09333257pbHtoN9BII.mp3",
                    "https://image.cailianpress.com/admin/20210228/093332azbk0F9ExN2P.mp3"
                ],
                "author":""
            }
        ],
        "update_num":1
    },
    "vipData":[

    ]
}

转换后的struct结构

type AutoGenerated struct {
	Error int `json:"error"`
	Data Data `json:"data"`
	VipData []interface{} `json:"vipData"`
}
type Ad struct {
	ID int `json:"id"`
	Title string `json:"title"`
	Img string `json:"img"`
	URL string `json:"url"`
	MonitorURL string `json:"monitorUrl"`
	VideoURL string `json:"video_url"`
	AdTag string `json:"adTag"`
	FullScreen int `json:"fullScreen"`
}
type RollData struct {
	AuthorExtends string `json:"author_extends"`
	DepthExtends string `json:"depth_extends"`
	DenyComment int `json:"deny_comment"`
	Level string `json:"level"`
	ReadingNum int `json:"reading_num"`
	Content string `json:"content"`
	InRoll int `json:"in_roll"`
	Recommend int `json:"recommend"`
	Confirmed int `json:"confirmed"`
	Jpush int `json:"jpush"`
	Img string `json:"img"`
	UserID int `json:"user_id"`
	IsTop int `json:"is_top"`
	Brief string `json:"brief"`
	ID int `json:"id"`
	Ctime int `json:"ctime"`
	Type int `json:"type"`
	Title string `json:"title"`
	Bold int `json:"bold"`
	SortScore int `json:"sort_score"`
	CommentNum int `json:"comment_num"`
	ModifiedTime int `json:"modified_time"`
	Status int `json:"status"`
	Collection int `json:"collection"`
	HasImg int `json:"has_img"`
	Category string `json:"category"`
	Shareurl string `json:"shareurl"`
	ShareImg string `json:"share_img"`
	ShareNum int `json:"share_num"`
	SubTitles []interface{} `json:"sub_titles"`
	Tags []interface{} `json:"tags"`
	Imgs []interface{} `json:"imgs"`
	Images []interface{} `json:"images"`
	ExplainNum int `json:"explain_num"`
	StockList []interface{} `json:"stock_list"`
	IsAd int `json:"is_ad"`
	Ad Ad `json:"ad"`
	Subjects interface{} `json:"subjects"`
	AudioURL []string `json:"audio_url"`
	Author string `json:"author"`
}
type Data struct {
	RollData []RollData `json:"roll_data"`
	UpdateNum int `json:"update_num"`
}

只需要微调一下一些结构体的名称,将其语义化即可,非常方便。

 类似资料: