【go语言】读取toml文件

2024-01-21

一、简介

TOML ,全称为Tom's Obvious, Minimal Language,是一种易读的配置文件格式,旨在成为一个极简的数据序列化语言。TOML的设计原则之一是保持简洁性,易读性,同时提供足够的灵活性以满足各种应用场景。

TOML文件由多个表(table)组成,每个表包含一组键值对。键值对由键名、等号(或冒号),以及对应的值组成。TOML支持嵌套表,可以构建层次结构,使得配置文件更加结构化。

二、用法

github官方地址
GitHub - BurntSushi/toml: TOML parser for Golang with reflection.

# 一个包含各种数据类型的 TOML 示例

StringValue = "Hello, World!"

MultilineString = """
This is a
multi-line
string.
"""

IntegerValue = 42

FloatValue = 3.14

BooleanValue = true

ArrayValues = [1, 2, 3]

[[Table]]
NestedString = "Nested String 1"
NestedInteger = 123

[[Table]]
NestedString = "Nested String 2"
NestedInteger = 456
[[Table.NnTables]]
NnString = "NnTable String 2"
NnInteger = 456
[[Table.NnTables]]
NnString = "NnTable String 2"
NnInteger = 456

[[Table]]
NestedString = "Nested String 3"
NestedInteger = 789
[[Table.NnTables]]
NnString = "NnTable String 1"
NnInteger = 789

[Maps]
[Maps.Map1]
NestedString = "Map Nested String 1"
NestedInteger = 111

[Maps.Map2]
NestedString = "Map Nested String 2"
NestedInteger = 222

DatetimeValue = 2022-01-11T12:34:56Z


对应的go文件:注意命名大写且要和toml文件一致

type Config struct {
	StringValue     string
	MultilineString string
	IntegerValue    int
	FloatValue      float64
	BooleanValue    bool
	ArrayValues     []int
	Table           []NestedTable
	Maps            map[string]NestedTable
	DatetimeValue   time.Time
}

type NestedTable struct {
	NestedString  string
	NestedInteger int
	NnTables      []NnTable
}
type NnTable struct {
	NnString  string
	NnInteger int
}

解析:导包 "github.com/BurntSushi/toml"

var config Config
	configPath := "config.toml"
	if _, err := toml.DecodeFile(configPath, &config); err != nil {
		fmt.Errorf("Error decoding TOML file: %v", err)
	}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【go语言】读取toml文件 的相关文章

  • 将 Websocket 消息发送到 Go 中的特定通道(使用 Gorilla)

    我对 Go 很陌生 并且发现自己使用套接字作为我的第一个项目 这是一个多余的问题 但我无法理解如何将 websocket 更新发送到 Go 中的特定通道 使用 Gorilla 我在用此链接中的代码示例 https github com go
  • 无法从另一个标签的源代码构建和安装 go

    我正在尝试使用此从源代码构建和安装 go文档 https go dev doc install source 当我喜欢以下内容时 这效果很好 git clone https go googlesource com go goroot cd
  • K8s更改配置映射并更新应用程序日志级别

    我想更改在 K8S 上运行的 Golang 应用程序的登录配置 我在本地尝试了以下代码 它按预期工作 我正在使用 viper 来监视配置文件更改 这是带有日志配置的配置图 apiVersion v1 kind ConfigMap data
  • 如何使用 go web 服务器提供静态 html 文件?

    如何使用 go web 服务器提供 index html 或其他静态 HTML 文件 我只想要一个基本的静态 HTML 文件 例如一篇文章 我可以从 Go Web 服务器提供该文件 HTML 应该可以在 go 程序之外进行修改 就像使用 H
  • golang导入结构体指针

    好的 我有一个主包和一个 http 处理程序包 本质上我想做的是设置一个全局结构 这样我就可以随时调用该结构中的信息 我尝试的示例的基本概要如下 主包导入处理函数 主包调用handlerfunc Handlerfunc 将 http Res
  • golang sql 驱动程序的准备语句

    关于golang的sql driver 下面两条语句有什么区别 store DB is sql DB type rows err store DB Query SQL args err nil defer rows Close and st
  • Google App Engine Golang 没有这样的文件或目录

    我正在用 Go 开发一个 Google App Engine 项目 并陷入了读取文件的困境 事实上 应用程序在本地运行得很好 然而 部署时 它会恐慌告诉我没有这样的文件或目录 这是我的 fileValue 方法 func fileValue
  • GoLang - 坚持使用 ISO-8859-1 字符集

    我正在开发一个项目 我们需要将信息保存在具有 ISO 8859 1 表的旧数据库中 因此 在向数据库写入内容之前 我需要将其从 UTF 8 转换为 ISO 8859 1 每次从数据库检索它时 我都需要将其转换回 UTF 8 我试图使用图书馆
  • vscode 中的调试不会在断点处停止,调试器启动时显示“无法找到文件...”

    乌班图 vscode 1 62 1 去1 17 3 vscode go 扩展 v0 29 0 深入研究 v1 7 1 我是 vscode 和 Go 的新手 我有多年在 Eclipse 中调试 Java 应用程序的经验 我构建了一个小型多模块
  • 当变量更新时动态刷新模板的一部分golang

    在Golang中 当变量更新时可以刷新模板的一部分吗 例如 我们可以在 Angular js 中找到这一点 基本上在我的代码中 我通过 ajax 中的邮政编码查找地址 它显示我找到的该邮政编码的用户列表 Here is a sample o
  • Go MSSQL 连接

    如何提供 MSSQL 连接 它说它始终与代码相关 即使信息不正确 也不会报错 package main import database sql fmt github com denisenkom go mssqldb log var ser
  • Go SQL查询不一致

    我在执行查询时遇到一些非常奇怪的不一致 并且想知道是否有人知道原因 想象一下我有一个定义如下的结构 type Result struct Afield string db A Bfield interface db B Cfield str
  • 使用 crypto/ssh 的 golang scp 文件

    我正在尝试通过 ssh 下载远程文件 以下方法在 shell 上运行良好 ssh hostname tar cz opt local folder gt folder tar gz 然而 golang 上的相同方法在输出工件大小方面存在一些
  • 给定方法值,获取接收者对象

    Go 有没有办法从方法值获取接收者对象 例如有没有这样的MagicFunc这将使以下程序输出字符串my info来自底层 Foo 实例 package main import fmt type Foo struct A string fun
  • 是否支持动态变量?

    我想知道Go中是否可以动态创建变量 我在下面提供了一个伪代码来说明我的意思 我将新创建的变量存储在切片中 func method slice make type for i 0 i lt 10 i var variable i i slic
  • 无法通过键获取 Gorilla 会话值

    我无法通过这种方式从会话中获取价值 它是nil session initSession r valWithOutType session Values key 完整代码 package main import fmt github com
  • 完全删除使用“go get”安装的软件包?

    我正在使用 Go 1 13 1 最新版本 我正在尝试完全删除我安装的软件包go get来自 GitHub 这go clean i
  • Gorm 总是返回带有 nil 值的结构

    我正在使用 Gorm 构建 Go Web API 作为 Amazon RDS 中 Postgresql 数据库的 ORM 问题是 Gorm 总是返回一片结构 其值全部为零 尽管数据库已经填充了数据 切片中的结构体数量是否合适取决于LIMIT
  • 如何从非英语字符串解析go中的月份

    我想将以下字符串解析为 go 中的日期 This item will be released on March 9 2014 我跟着this https stackoverflow com questions 14106541 go par
  • 如何在 Go 中从 stdin 解析无限 json 数组?

    我正在尝试编写一个 i3status 的小替代品 一个与 i3bar 兼容的小程序进行通信this http i3wm org docs i3bar protocol html协议 他们通过标准输入和标准输出交换消息 两个方向的流都是一个无

随机推荐

  • 题解 | #获取员工其当前的薪水比其manager#

    我为什么拒了华为 offer 国家智能设计与数控技术创新中心 英语好技术烂的top2工科硕就业迷茫 坐等消息 华为ICT无线网络产品线面经 已完结 华为面经 ICT计算产品线 华为计算产品线实习面试 通软 凉凉 软开还是run开 国企银行的
  • 【自适应滤波】一种接近最佳的自适应滤波器,用于突发系统变化研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文章
  • 从决策流到数据洞察:JVS规则引擎与智能BI的1.16更新详

    美团到店前端日常实习面经 4 信息安全学习 渗透测试知识点 汽车领域中软件技术方向就业分析 1 整车厂 华为海思光芯片2021校招笔经面经 许愿一个offer 6 中信银行总行大数据中心背调bg统计 春招背水一战 一定要尽快行动起来 华为开
  • 详解toLowerCase(判断字符串相等)

    一 toLowerCase 函数简介 toLowerCase 是一个在多个编程语言中都存在的字符串方法 它的作用是将字符串中的所有大写字母转换为对应的小写字母 常用于文本处理 搜索和比较等情况 以确保字符串的一致性和非大小写敏感的操作 二
  • 题解 | #网易云音乐推荐(网易校招笔试真题)#

    题解 人民币转换 import syss input split mp 1 壹 2 贰 3 叁 4 肆 5 伍 6 陆 蔚来 AI数据库开发实习一面1 11 1 自我介绍2 科大讯飞比赛做了什么 是用到了讯飞平台的某些功能吗3 API开放平
  • 微信公众号AI爆文项目入门

    今日 尝试了进行AI爆文的项目 其核心逻辑是不依赖于传统的打造个人IP 而是使用ChatGPT 文心一言等大语言模型进行创作 并发表到微信公众号平台 实现低粉爆文的效果 通过系统流量池的推荐来实现收益 一篇10W 的文章的收益在800到几千
  • DockerCompose - 微服务项目部署全过程(最佳实践)

    目录 一 微服务项目部署 1 1 项目介绍 1 2 准备 MySQL 初始化文件 1 3 pom xml 插件 1 4 测试工作 1 5 编写 Dockerflie 文件 1 6 编写 DockerCompose yml 文件 1 7 修改
  • 网上订货管理系统功能列表|企业手机订单管理软件

    网上 订货 管理 系统功能列表 企业手机订单管理软件 后台功能列表 后台支持手机版本 订货APP 管理订单的APP 后台登陆 输入账号密码登录企业订货管理软件系统 后台首页 显示近日 月 年订单统计 和收款欠款等统计 订单模块 新建订单 通
  • 【固定翼飞机】基于最优控制的固定翼飞机着陆控制器设计研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文章
  • MathType中文网站2024最新版本下载及嵌入word教程

    MathType 是一款专业的数学公式编辑器 兼容Office word excel等700多种程序 用于编辑数学试卷 书籍 报刊 论文 幻灯演示等文档轻松输入各种复杂的数学公式和符号 MathType是一款功能强大的数学公式编辑器 广泛用
  • FL Studio21.2.2官方中文版重磅发布

    FL Studio 21 2 2官方中文版重磅发布纯正简体中文支持 更快捷的音频剪辑及素材管理器 多样主题随心换 Mac版新增对苹果M2 1家族芯片原生支持 DAW界萌神 极富二次元造型的水果娘FL chan通过FL插件Fruity Dan
  • mathtype2024版本下载与安装(mac版本也包含在内)

    安装包补丁主要是mathtype的安装包 与它的补丁 详细安装过程 step1 使用方法是下载完成后先安装MathType win zh exe文件 跟着步骤走直接安装就行 step2 关闭之后 以管理员身份运行MathType7PJ ex
  • 题解 | #返回购买 prod_id 为 BR01 的产品

    银行求职者的秋招总结 太原就业交流 滴滴实习6个月的感受 模拟面试 半年实习 项目经验不突出 如何让面试官 眼前一亮 双非硕士暑期实习 算法还是开发 百度提前批一二三面 进决赛圈了求指点 华为海思东莞asic开奖 公司有三个计划 每个计划薪
  • camtasia studio2024免费版如何下载?怎么录屏?

    camtasia studio怎么录屏 Camtasia Studio是一款专门录制屏幕动作的工具 它能在任何颜色模式下轻松地记录屏幕动作 包括影像 音效 鼠标移动轨迹 解说声音等等 一般情况下 用户使用camtasia studio进行录
  • 液晶偏振光栅

    1 偏振 光是横波 在垂直于光的传播方向的平面内光波振动 即E矢量振动 各方向振幅都相等的光为自然光 只在某一方向有光振动的光称为线偏振光 各方向光振动都有 但振幅不同的光叫部分偏振光 螺旋着振动的光称圆偏振光 分旋和右旋 2 庞加莱球表示
  • 基于卡尔曼的混合预编码技术用于多用户毫米波大规模MIMO系统研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文章
  • Redis基础系列-哨兵模式

    Redis基础系列 哨兵模式 文章目录 Redis基础系列 哨兵模式 1 引言 2 什么是哨兵模式 3 哨兵模式的配置 4 哨兵模式的启动和验证 4 1 主master宕机 看会出现什么问题
  • 获取员工其当前的薪水比其manager当前薪水还高的相关信息

    后悔早签三方了 双非渣渣不该信金九银十 凯子今年确实也卷起来了 想进华为 就别去华为实习 鼠鼠拿了几个offer 请大家帮忙看下 有点困惑百度 base北京 n 4 16 薪资可 华为开奖 一个月过去了 25终于找到JAVA实习 算法方向推
  • 【go语言】结构体数据填充生成md错误码文件

    这里使用pongo2这个模版引擎库进行md文件渲染 GitHub flosch pongo2 Django syntax like template engine for Go package main import fmt github
  • 【go语言】读取toml文件

    一 简介 TOML 全称为Tom s Obvious Minimal Language 是一种易读的配置文件格式 旨在成为一个极简的数据序列化语言 TOML的设计原则之一是保持简洁性 易读性 同时提供足够的灵活性以满足各种应用场景 TOML