Tree @upstream/2.2.2 (Download .tar.gz)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | # 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 Apache License 2.0. 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] ` // Note: struct fields must be public in order for unmarshal to // correctly populate the data. 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 ``` |
Commit History @upstream/2.2.2
- Add time.Time encoding/decoding test. Gustavo Niemeyer 9 years ago
- Merge pull request #76 from robx/patch-1 Gustavo Niemeyer 9 years ago
- Balance parentheses. Robert 9 years ago
- Merge pull request #72 from gogolok/travis_ci_support Gustavo Niemeyer 9 years ago
- README.md: travis ci build status Robert Gogolok 9 years ago
- travis ci Robert Gogolok 9 years ago
- Support inline flag on a map field. Gustavo Niemeyer 9 years ago
- Add test ensuring [] decodes as zero-length slice. Gustavo Niemeyer 9 years ago
- Do not call MarshalText on yaml.Marshaler. Gustavo Niemeyer 9 years ago
- Add test ensuring ": " values get quoted. Gustavo Niemeyer 9 years ago
- Merge pull request #52 from BrianBland/v2 Gustavo Niemeyer 9 years ago
- Merge pull request #61 from hkjn/v2 Gustavo Niemeyer 9 years ago
- Reset slice rather than appending to old value. Gustavo Niemeyer 9 years ago
- Support omitempty on struct value fields. Gustavo Niemeyer 9 years ago
- runs 'gofmt -w *.go' on gopkg.in/yaml.v2 Henrik Jonsson 9 years ago
- Fixes TypeError check in Unmarshal Brian Bland 9 years ago
- Use math constants as decode_test check values Jordan Liggitt 9 years ago
- Add support for uint64 and 64-bit binary notation Jordan Liggitt 9 years ago
- Support encoding.TextMarshaler/Unmarshaler. Gustavo Niemeyer 9 years ago
- Only inherit map types if sufficiently flexible. Gustavo Niemeyer 9 years ago
- Trivial documentation fix. Gustavo Niemeyer 9 years ago
- Marshal top-level nils correctly. Gustavo Niemeyer 9 years ago
- Allow non-ASCII characters in plain strings. Gustavo Niemeyer 9 years ago
- Drop obsolete note. Gustavo Niemeyer 9 years ago
- v1 => v2 Gustavo Niemeyer 9 years ago
- Proper reporting of type errors. Gustavo Niemeyer 9 years ago
- New marshaler and unmarshaler interfaces. Gustavo Niemeyer 9 years ago
- Ordered map support with MapSlice. Gustavo Niemeyer 9 years ago
- Update README. Gustavo Niemeyer 9 years ago
- Better error on invalid map keys. Gustavo Niemeyer 9 years ago