Comments (1)
I am seeing this too, it seems to be present whether or not there are comments.
yaml_test % cat go.mod
module yaml_test
go 1.21.5
require (
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
yaml_test % cat main.go
package main
import (
"fmt"
yaml2 "gopkg.in/yaml.v2"
yaml3 "gopkg.in/yaml.v3"
)
type Test struct {
Foo []struct{} `yaml:"foo"`
}
func withYaml2() (Test, error) {
var test Test
err := yaml2.Unmarshal([]byte("foo:\n-"), &test)
return test, err
}
func withYaml3() (Test, error) {
var test Test
err := yaml3.Unmarshal([]byte("foo:\n-"), &test)
return test, err
}
func main() {
fmt.Println(withYaml2())
fmt.Println(withYaml3())
}
yaml_test % go run main.go
{[{}]} <nil>
{[]} <nil>
It seems like go-yaml/v3 is treating foo:\n-
as a zero-length slice, whereas go-yaml/v2 treats it as a slice of length one whose entry has the zero value. IMO v2 is doing the right thing and v3 should be changed to match.
from yaml.
Related Issues (20)
- Newline string literals produce invalid marshaling output HOT 2
- Feature request: Find and get information of a Node based on yaml path
- UnmarshalText ignored in arrays HOT 1
- Incompatible with standard `encoding/json` regular expression marshaling HOT 1
- Invalid date-time format during marshalling returns unquoted value. Expecting quoted value. HOT 2
- Marshaling integer values to hexadecimal representation
- Different behaviors between this library and standard encoding/json when unmarshal yaml to a struct embedded with other structs HOT 1
- Force marshaler to use multi-line for string with `\n` HOT 1
- Empty `!!null` node fails encoding and causes panic
- Comments rendering issue related to array nodes
- Yaml encoder writing tag of merge node `!!merge` in output
- Untagged field names "y" and "n" marshalled with quotes, others not HOT 6
- Custom (Un-)Marshaller on Generic Types ignored
- mining
- Incorrect RC3339 encoding HOT 1
- YAML parsing is not as expected HOT 2
- Yea
- yaml omitempty HOT 2
- `flow` and `inline` structure tags don't work together
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yaml.