乔克视界 乔克视界
首页
  • 运维
  • 开发
  • 监控
  • 安全
  • 随笔
  • Docker
  • Golang
  • Python
  • AIOps
  • 心情杂货
  • 读书笔记
  • 面试
  • 实用技巧
  • 博客搭建
友链
关于
收藏
  • 分类
  • 标签
  • 归档

乔克

云原生爱好者
首页
  • 运维
  • 开发
  • 监控
  • 安全
  • 随笔
  • Docker
  • Golang
  • Python
  • AIOps
  • 心情杂货
  • 读书笔记
  • 面试
  • 实用技巧
  • 博客搭建
友链
关于
收藏
  • 分类
  • 标签
  • 归档
  • Docker

  • Golang

    • Golang基础知识

    • Golang进阶知识

    • Golang常用包

      • Cobra 使用
      • gorm的简单操作
      • Excelize操作excl
      • sjson为json数据设置值
      • gjson解析json数据
      • yaml配置文件解析
        • viper读取配置文件
        • zap日志管理
        • gopsutil获取系统信息
    • AIOps

    • 专栏
    • Golang
    • Golang常用包
    乔克
    2025-07-17
    目录

    yaml配置文件解析

    解析YAML配置文件。

    # 1、创建YAML文件

    SiteName: joker
    SiteAddr: Chongqing
    Https: true
    Nginx:
        Port: 443
        LogPath:  "/var/log//nginx/nginx.log"
        Path: "/opt/nginx/"
    
    1
    2
    3
    4
    5
    6
    7

    # 2、用Go解析YAML文件

    package main
    
    import (
        "fmt"
        "io/ioutil"
        "gopkg.in/yaml.v2"
    )
    
    //Nginx nginx  配置
    type Nginx struct {
        Port int `yaml:"Port"`
        LogPath string `yaml:"LogPath"`
        Path string `yaml:"Path"`
    }
    //Config   系统配置配置
    type Config struct{
        Name string `yaml:"SiteName"`
        Addr string `yaml:"SiteAddr"`
        HTTPS bool `yaml:"Https"`
        SiteNginx  Nginx `yaml:"Nginx"`
    }
    
    func main() {
    
        var setting Config
        config, err := ioutil.ReadFile("./first.yaml")
        if err != nil {
            fmt.Print(err)
        }
        yaml.Unmarshal(config,&setting)
    
        fmt.Println(setting.Name)
        fmt.Println(setting.Addr)
        fmt.Println(setting.HTTPS)
        fmt.Println(setting.SiteNginx.Port)
        fmt.Println(setting.SiteNginx.LogPath)
        fmt.Println(setting.SiteNginx.Path)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37

    函数简介:

    1. ioutil.ReadFile("./first.yaml") :读取yaml文件信息
    2. yaml.Unmarshal()

    第一个输入参数:获取 ioutil.ReadFile 的值,为[]byte类型

    第二个参数输出参数,可以为任意类型。

    上次更新: 2025/07/18, 11:55:50
    gjson解析json数据
    viper读取配置文件

    ← gjson解析json数据 viper读取配置文件→

    最近更新
    01
    2025年,SRE在企业中可以做哪些事
    07-18
    02
    SRE 如何提升自己在团队中的影响力
    07-18
    03
    使用Go开发MCP服务
    07-18
    更多文章>
    Theme by Vdoing | Copyright © 2019-2025 乔克 | MIT License | 渝ICP备20002153号 |
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式