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文件并将其解析为对应的结构体。

Golang读取JSON文件并解析为结构体

原文地址: https://www.cveoy.top/t/topic/jkmR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录