有时候我们需要从文件中读取josn并且反序列化为struct,首先肯定最头疼的就是创建是这个struct怎么建。
今天分享的是一个工具: https://oktools.net/json2go,可以快速将json转换成go的struct。
首先打开网站,把json输入进来,得到结构体,复制一下。
创建三个文件,分别用来读json、测试、还有一个josn文件。
读json文件如下
package json import ( "encoding/json" "fmt" "io/ioutil" ) type AutoGenerated struct { Properties Properties `json:"properties"` } type AdjacentColors struct { Type string `json:"type"` Fielddata bool `json:"fielddata"` } type Properties struct { AdjacentColors AdjacentColors `json:"adjacentColors"` } func ReadJsonFile() { JsonParse := NewJsonStruct() v := AutoGenerated{} //下面使用的是相对路径,config.json文件和main.go文件处于同一目录下 JsonParse.Load("../a.json", &v) fmt.Println(v.Properties.AdjacentColors.Fielddata) } type JsonStruct struct { } func NewJsonStruct() *JsonStruct { return &JsonStruct{} } func (jst *JsonStruct) Load(filename string, v interface{}) { //ReadFile函数会读取文件的全部内容,并将结果以[]byte类型返回 data, err := ioutil.ReadFile(filename) if err != nil { return } //读取的数据为json格式,需要进行解码 err = json.Unmarshal(data, v) if err != nil { return } }
golang如何快速读取复杂json文件介绍到这里,更多Go学习请参考编程字典Go教程 和问答部分,谢谢大家对编程字典的支持。
原文链接:https://blog.csdn.net/qq_37362891/article/details/103783674?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163523372016780265481777%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163523372016780265481777&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-18-103783674.pc_v2_rank_blog_default&utm_term=go&spm=1018.2226.3001.4450