beego读取配置yaml配置文件
YAML实质上是一种通用的数据串行化格式,它的基本语法规则如下:
<ul><li>大小写敏感</li><li>使用缩进表示层级关系</li><li>缩进时不允许使用tab键,只允许使用空格</li><li>缩进的空格数目不重要,只要相同层级的元素左侧对齐即可</li><li>符号#表示注释,从这个字符一直到行尾,都会被解析器忽略</li></ul><h3 id="yaml支持go">YAML支持Go</h3>yaml包可以编码和解码YAML值,它基于著名的libyaml c库来解析和生成YAML数据。
<h4 id="兼容性">兼容性</h4>yaml包支持大多数YAML1.1和1.2,包括支持anchors,tags,map合并等,但是多文档解析还没有实现。
<h4 id="安装使用">安装使用</h4>安装<code>gopkg.in/yaml.v2</code>,可以运行命令<code>go get gopkg.in/yaml.v2</code>。具体的接口文档可以查看https://gopkg.in/yaml.v2。
<h4 id="演示">演示</h4>test.yml文件
<pre class="prettyprint"><code class=" hljs http"><span class="hljs-attribute">name</span>: <span class="hljs-string">'benben_2015'</span> <span class="hljs-attribute">website</span>: <span class="hljs-string">'www.csdn.com'</span> <span class="hljs-attribute">year</span>: <span class="hljs-string">2015</span> <span class="haml">favourite: -<span class="ruby"> <span class="hljs-string">'play games'</span> </span> -<span class="ruby"> <span class="hljs-string">'programming'</span> </span> -<span class="ruby"> <span class="hljs-string">'reading'</span></span></span></code></pre>main文件和test.yml在同一目录下
<pre class="prettyprint"><code class=" hljs go"><span class="hljs-keyword">package</span> main <span class="hljs-keyword">import</span> ( <span class="hljs-string">"fmt"</span> <span class="hljs-string">"io/ioutil"</span> <span class="hljs-string">"gopkg.in/yaml.v2"</span> ) <span class="hljs-keyword">type</span> CSDN <span class="hljs-keyword">struct</span> { Name <span class="hljs-typename">string</span> WebSite <span class="hljs-typename">string</span> Year <span class="hljs-typename">int</span> Favourite []<span class="hljs-typename">string</span> } <span class="hljs-keyword">func</span> main() { content, err := ioutil.ReadFile(<span class="hljs-string">"./test.yml"</span>) <span class="hljs-keyword">if</span> err != <span class="hljs-constant">nil</span> { fmt.Println(err) } csdn := CSDN{} yaml.Unmarshal(content, &csdn) fmt.Println(csdn.Name) fmt.Println(csdn.Favourite) }</code></pre> <h3 id="beego支持yaml">beego支持yaml</h3> <h4 id="安装使用-1">安装使用</h4>beego支持解析的文件格式有ini,json,xml,yaml,可以通过如下方式进行安装,<code>go get github.com/astaxie/beego/config</code>。使用yaml驱动就需要手工安装引入包<code>go get -u github.com/astaxie/beego/config/yaml</code>
<h4 id="演示-1">演示</h4>yaml文件相同还是用上面的代码,而main文件有变化。
<pre class="prettyprint"><code class=" hljs go"><span class="hljs-keyword">package</span> main <span class="hljs-keyword">import</span> ( <span class="hljs-string">"fmt"</span> <span class="hljs-string">"github.com/astaxie/beego/config/yaml"</span> ) <span class="hljs-keyword">type</span> CSDN <span class="hljs-keyword">struct</span> { Name <span class="hljs-typename">string</span> WebSite <span class="hljs-typename">string</span> Year <span class="hljs-typename">int</span> Favourite []<span class="hljs-typename">string</span> } <span class="hljs-keyword">func</span> main() { conf, err := yaml.ReadYmlReader(<span class="hljs-string">"./test.yml"</span>) <span class="hljs-keyword">if</span> err != <span class="hljs-constant">nil</span> { fmt.Println(err) } name := conf[<span class="hljs-string">"name"</span>] favourite := conf[<span class="hljs-string">"favourite"</span>] fmt.Println(name) fmt.Println(favourite) }</code></pre>但是它对一些复杂的结构还不支持,例如不支持map列表。
到此这篇关于“beego读取配置yaml配置文件”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!您可能感兴趣的文章:
beego读取配置yaml配置文件
Golang 入门系列(九) 如何读取YAML,JSON,INI等配置文件
Go语言从入门到精通 -【web项目实战篇】- 读取配置文件
让我们一起认识YAML:YAML简介
如何读取yaml,json,ini等配置文件【Golang 入门系列九】
python 怎么读取yaml文件
Golang——使用yaml配置文件
golang整洁之道(一)
Golang加载yaml类型配置文件问题
golang几种常用配置文件使用方法总结(yaml、toml、json、xml、ini)