教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang解析yml文件

golang解析yml文件

发布时间:2022-01-18   编辑:jiaochengji.com
教程集为您提供golang解析yml文件等资源,欢迎您收藏本站,我们将为您提供最新的golang解析yml文件资源
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"/></svg>

要解析yml文件,首先需要知道yml文件语法格式,可以参考博客:

https://blog.csdn.net/csdniter/article/details/103313432

解析yml文件和解析json数据方法一样,使用的是github上第三方开源gopkg.in/yaml.v2

<h2>第一步:新建一个yaml文件,比如conf.yaml</h2> <pre><code class="lang-bash hljs">host: localhost:3306 user: root pwd: 123456 dbname: <span class="token function">test</span> devs: - 10.37.51.2:20008 - 10.37.51.3:20008 filter_types: 813-http: 0 </code></pre> <h2>第二步:新建一个go文件,进行解析</h2> <pre><code class="lang-go hljs"><span class="token keyword">package</span> main <span class="token keyword">import</span> <span class="token punctuation">(</span> <span class="token string">"io/ioutil"</span> <span class="token string">"gopkg.in/yaml.v2"</span> <span class="token string">"fmt"</span> <span class="token punctuation">)</span> <span class="token keyword">func</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">var</span> c conf conf<span class="token operator">:=</span>c<span class="token punctuation">.</span><span class="token function">getConf</span><span class="token punctuation">(</span><span class="token punctuation">)</span> fmt<span class="token punctuation">.</span><span class="token function">Println</span><span class="token punctuation">(</span>conf<span class="token punctuation">.</span>Host<span class="token punctuation">)</span> fmt<span class="token punctuation">.</span><span class="token function">Println</span><span class="token punctuation">(</span>conf<span class="token punctuation">.</span>Devs<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span> fmt<span class="token punctuation">.</span><span class="token function">Println</span><span class="token punctuation">(</span>conf<span class="token punctuation">.</span>FilterTypes<span class="token punctuation">.</span><span class="token number">813</span><span class="token operator">-</span>http <span class="token punctuation">)</span> <span class="token punctuation">}</span> <span class="token comment">//profile variables</span> <span class="token keyword">type</span> conf <span class="token keyword">struct</span> <span class="token punctuation">{</span> Host <span class="token builtin">string</span> <span class="token string">`yaml:"host"`</span> User <span class="token builtin">string</span> <span class="token string">`yaml:"user"`</span> Pwd <span class="token builtin">string</span> <span class="token string">`yaml:"pwd"`</span> Dbname <span class="token builtin">string</span> <span class="token string">`yaml:"dbname"`</span> Devs <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token builtin">string</span> <span class="token string">`yaml:"devs"`</span> FilterTypes <span class="token keyword">map</span><span class="token punctuation">[</span><span class="token builtin">string</span><span class="token punctuation">]</span><span class="token builtin">int</span> <span class="token string">`yaml:"filter_types"`</span> <span class="token punctuation">}</span> <span class="token keyword">func</span> <span class="token punctuation">(</span>c <span class="token operator">*</span>conf<span class="token punctuation">)</span> <span class="token function">getConf</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">*</span>conf <span class="token punctuation">{</span> yamlFile<span class="token punctuation">,</span> err <span class="token operator">:=</span> ioutil<span class="token punctuation">.</span><span class="token function">ReadFile</span><span class="token punctuation">(</span><span class="token string">"conf.yaml"</span><span class="token punctuation">)</span> <span class="token keyword">if</span> err <span class="token operator">!=</span> <span class="token boolean">nil</span> <span class="token punctuation">{</span> fmt<span class="token punctuation">.</span><span class="token function">Println</span><span class="token punctuation">(</span>err<span class="token punctuation">.</span><span class="token function">Error</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">}</span> err <span class="token operator">=</span> yaml<span class="token punctuation">.</span><span class="token function">Unmarshal</span><span class="token punctuation">(</span>yamlFile<span class="token punctuation">,</span> c<span class="token punctuation">)</span> <span class="token keyword">if</span> err <span class="token operator">!=</span> <span class="token boolean">nil</span> <span class="token punctuation">{</span> fmt<span class="token punctuation">.</span><span class="token function">Println</span><span class="token punctuation">(</span>err<span class="token punctuation">.</span><span class="token function">Error</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">}</span> <span class="token keyword">return</span> c <span class="token punctuation">}</span> </code></pre> 到此这篇关于“golang解析yml文件”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
golang解析yml文件
Golang库 - viper读取配置文件
基于golang语言web框架gin搭建应用-02配置文件(yml)
Go语言中加载.yml配置文件的方式
使用docker-compose安装elasticsearch6.8.1
golang之配置文件
Go: 从文件中读取配置
Go中配置文件读取的几种方式
php复制目录函数
golang json文件存取

[关闭]
~ ~