首页 > 其他分享 >yaml.v3 - YAML 反序列化

yaml.v3 - YAML 反序列化

时间:2023-06-20 11:04:37浏览次数:31  
标签:password string yaml v3 user conf 序列化 type


配置文件

mysql:
  conn: 1.1.1.1
  user: yang
  password: yang
consul:
  addr: 2.2.2.2
  user: yang
  password: yang

代码

package main

import (
	"fmt"
	"gopkg.in/yaml.v3"
	"os"
)

type EnvSD struct {
	Mysql  Mysql  `yaml:"mysql"`  // 这里是非匿名结构体,必须在配置中指定 mysql 字段作为 key
	Consul Consul `yaml:"consul"`
}

type Mysql struct {
	Conn string           `yaml:"conn"`
	Desc string           `yaml:"desc"`
	Auth `yaml:",inline"` // 这里使用了匿名结构体, 在配置文件中就直接指定 user, password即可
}

type Consul struct {
	Addr string           `yaml:"addr"`
	Desc string           `yaml:"desc"`
	Auth `yaml:",inline"`
}

type Auth struct {
	User     string `yaml:"user"`
	Password string `yaml:"password"`
}

func main() {

	b, _ := os.ReadFile("./conf.yaml")
	fmt.Println(string(b))

	var conf EnvSD
	yaml.Unmarshal(b, &conf)

	fmt.Printf("%+v\n", conf)
}


标签:password,string,yaml,v3,user,conf,序列化,type
From: https://blog.51cto.com/u_16165803/6521270

相关文章

  • 三菱FX3U-485ADP-MB通讯三种变频器程序 已实现测试的变频器:施耐德ATV312,
    三菱FX3U-485ADP-MB通讯三种变频器程序已实现测试的变频器:施耐德ATV312,三菱E700,台达VFD-M三款变频器,支持rtu的协议的变频器都可实现。需要硬件:FX3UPLC,FX3U-485ADP-MB通信扩展模块,施耐德ATV312变频器或台达vfd-m变频器或三菱E700变频器,fx3u-cnv-bd。通过modbusrtu通讯方式,可......
  • pytest + yaml 框架 -38.新增--start-project命令快速创建项目demo结构
    前言新增--start-project命令,帮助初学者快速创建项目demo结构,并自动创建几个简单的用例。创建项目demo结构执行以下命令pytest--start-project运行日志(venv)D:\demo\untitled_start>pytest--start-projectcreateinifile:D:\demo\untitled_start\pytest.ini......
  • v2和v3组件通信方式的区别
    https://gitee.com/jch1011/vue3_communication.git通信方式vue2props:父子组件、子父组件、甚至兄弟组件自定义事件:可以实现子父组件$bus:任意组件通信pubsub:发布订阅,任意组件通信vuex:集中式状态管理容器,实现任意组件通信ref:获取子组件的响应式数据及方法slot:插槽(默认、......
  • java反序列化(六)
    fastjson反序列化前置知识fastjson是阿里巴巴开发的一个处理json数据的开源库,简简单单解析一个json字符串是自然不会造成命令执行的,问题在于很多库为了实用性会额外实现一些功能,造成了攻击点fastjson简单使用引入依赖,先用古老版本<dependency><groupId>......
  • (转)kubernetes(k8s) yaml 文件详解2
    原文:https://juejin.cn/post/7202145223014252602#heading-0一、K8S支持的文件格式kubernetes支持YAML和JSON文件格式管理资源对象。JSON格式:主要用于api接口之间消息的传递YAML格式:用于配置和管理,YAML是一种简洁的非标记性语言,内容格式人性化,较易读1、yaml和json的主要区......
  • PHP反序列化构造POP链小练习
    一个师傅给的源码,来源不知,就当作小练习记录一下<?phperror_reporting(0);classVox{protected$headset;public$sound;publicfunctionfun($pulse){include($pulse);}publicfunction__invoke(){$this->fun($this->headset);......
  • 全志V3S嵌入式驱动开发-多按键输入驱动
    多按键输入驱动前面我们说过,荔枝派的开发板上面,有4个按键本身不是通过gpio连接到soc上面的。它是通过ad的方法,连接到主芯片的。这个时候,不同的按键被按下的时候,就会生成不同的电压或者电流,那么完全可以根据对应的电信号,推算出当前是哪一个按键被按下去了。1、查找电路图简单看......
  • PicoRV32-on-PYNQ-Z2: An FPGA-based SoC System——RISC-V On PYNQ项目复现
    本文参考:......
  • pytest + yaml 框架 -37.mark 标记对用例运行时长断言
    前言pytest执行用例的时候,我们希望对用例的运行时间断言,当用例执行时长大于预期标记此用例失败。@pytest.mark.runtime(1)运行时长单位是秒此插件已打包上传到pypihttps://pypi.org/project/pytest-runtime-yoyo/1.0.0/环境准备pipinstallpytest-yaml-yoyo此功能在v1.3.1版......
  • pytest + yaml 框架 -38.企业微信机器人通知
    前言v1.3.2版本支持企业微信机器人发送报告通知了。pipinstallpytest-yaml-yoyo获取企业微信机器人token企业机器人相关接口可以看官方文档https://developer.work.weixin.qq.com/document/path/91770创建群聊机器人获取到webhook访问地址https://qyapi.weixin.qq.com/cgi-bin/......