Golang读取JSON文件并解析为结构体
Golang读取JSON文件并解析为结构体
在Golang中,使用标准库中的'encoding/json'包可以方便地读取JSON文件并将其解析为对应的结构体。
1. 示例JSON文件
假设有一个名为'config.json'的JSON文件,内容如下:
{
'name': 'John',
'age': 30,
'isMarried': true,
'hobbies': [
'reading',
'traveling',
'photography'
]
}
2. 定义结构体
我们需要定义一个与JSON文件结构相对应的结构体:
type Person struct {
Name string 'json:"name"'
Age int 'json:"age"'
IsMarried bool 'json:"isMarried"'
Hobbies []string 'json:"hobbies"'
}
3. 读取JSON文件并解析
以下代码演示了如何读取JSON文件并将其解析为'Person'结构体:
package main
import (
'encoding/json'
'fmt'
'io/ioutil'
)
type Person struct {
Name string 'json:"name"'
Age int 'json:"age"'
IsMarried bool 'json:"isMarried"'
Hobbies []string 'json:"hobbies"'
}
func main() {
// 读取JSON文件
data, err := ioutil.ReadFile('config.json')
if err != nil {
fmt.Println('读取文件失败:', err)
return
}
// 解析JSON数据为Person结构体
var person Person
err = json.Unmarshal(data, &person)
if err != nil {
fmt.Println('解析JSON数据失败:', err)
return
}
// 打印Person结构体的字段值
fmt.Println('Name:', person.Name)
fmt.Println('Age:', person.Age)
fmt.Println('IsMarried:', person.IsMarried)
fmt.Println('Hobbies:', person.Hobbies)
}
4. 输出结果
运行以上代码,将输出以下结果:
Name: John
Age: 30
IsMarried: true
Hobbies: [reading traveling photography]
通过以上步骤,我们成功地使用Golang读取了JSON文件并将其解析为对应的结构体。
原文地址: https://www.cveoy.top/t/topic/jkmR 著作权归作者所有。请勿转载和采集!