Page Menu
Home
Musing Studio
Search
Configure Global Search
Log In
Files
F13351564
README.md
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Subscribers
None
README.md
View Options
#
YAML
support
for
the
Go
language
Introduction
------------
The
yaml
package
enables
Go
programs
to
comfortably
encode
and
decode
YAML
values
.
It
was
developed
within
[
Canonical
](
https
:
//www.canonical.com) as
part
of
the
[
juju
](
https
:
//juju.ubuntu.com) project, and is based on a
pure
Go
port
of
the
well
-
known
[
libyaml
](
http
:
//pyyaml.org/wiki/LibYAML)
C
library
to
parse
and
generate
YAML
data
quickly
and
reliably
.
Compatibility
-------------
The
yaml
package
supports
most
of
YAML
1.1
and
1.2
,
including
support
for
anchors
,
tags
,
map
merging
,
etc
.
Multi
-
document
unmarshalling
is
not
yet
implemented
,
and
base
-
60
floats
from
YAML
1.1
are
purposefully
not
supported
since
they
'
re
a
poor
design
and
are
gone
in
YAML
1.2
.
Installation
and
usage
----------------------
The
import
path
for
the
package
is
*
gopkg
.
in
/
yaml
.
v2
*.
To
install
it
,
run
:
go
get
gopkg
.
in
/
yaml
.
v2
API
documentation
-----------------
If
opened
in
a
browser
,
the
import
path
itself
leads
to
the
API
documentation
:
*
[
https
:
//gopkg.in/yaml.v2](https://gopkg.in/yaml.v2)
API
stability
-------------
The
package
API
for
yaml
v2
will
remain
stable
as
described
in
[
gopkg
.
in
](
https
:
//gopkg.in).
License
-------
The
yaml
package
is
licensed
under
the
LGPL
with
an
exception
that
allows
it
to
be
linked
statically
.
Please
see
the
LICENSE
file
for
details
.
Example
-------
```
Go
package
main
import
(
"fmt"
"log"
"gopkg.in/yaml.v2"
)
var
data
=
`
a
:
Easy
!
b
:
c
:
2
d
:
[
3
,
4
]
`
type
T
struct
{
A
string
B
struct
{
RenamedC
int
`
yaml
:
"c"
`
D
[]
int
`
yaml
:
",flow"
`
}
}
func
main
()
{
t
:=
T
{}
err
:=
yaml
.
Unmarshal
([]
byte
(
data
),
&
t
)
if
err
!=
nil
{
log
.
Fatalf
(
"error: %v"
,
err
)
}
fmt
.
Printf
(
"--- t:\n%v\n\n"
,
t
)
d
,
err
:=
yaml
.
Marshal
(&
t
)
if
err
!=
nil
{
log
.
Fatalf
(
"error: %v"
,
err
)
}
fmt
.
Printf
(
"--- t dump:\n%s\n\n"
,
string
(
d
))
m
:=
make
(
map
[
interface
{}]
interface
{})
err
=
yaml
.
Unmarshal
([]
byte
(
data
),
&
m
)
if
err
!=
nil
{
log
.
Fatalf
(
"error: %v"
,
err
)
}
fmt
.
Printf
(
"--- m:\n%v\n\n"
,
m
)
d
,
err
=
yaml
.
Marshal
(&
m
)
if
err
!=
nil
{
log
.
Fatalf
(
"error: %v"
,
err
)
}
fmt
.
Printf
(
"--- m dump:\n%s\n\n"
,
string
(
d
))
}
```
This
example
will
generate
the
following
output
:
```
---
t
:
{
Easy
!
{
2
[
3
4
]}}
---
t
dump
:
a
:
Easy
!
b
:
c
:
2
d
:
[
3
,
4
]
---
m
:
map
[
a
:
Easy
!
b
:
map
[
c
:
2
d
:[
3
4
]]]
---
m
dump
:
a
:
Easy
!
b
:
c
:
2
d
:
-
3
-
4
```
File Metadata
Details
Attached
Mime Type
text/x-c
Expires
Sat, Jan 17, 4:22 AM (15 h, 20 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3589027
Attached To
rWAGTK writeas-gtk
Event Timeline
Log In to Comment