YAML specification is so ambigous, that you can't be sure if tomorrow you will parse the same data from YAML file as you have yesterday.
Let's see how different implementations parse YAML code. Settings are default or near to default or typical for that language. We use JSON to represent data the uniform way.
YAML source | yaml2json.hs | yaml2json.pl | yaml2json.py | yaml2json.rb | rq |
---|---|---|---|---|---|
|
|
|
|
|
|
| ❌ yaml2json.hs: UnexpectedEvent {_received = Nothing, _expected = Just EventStreamStart} |
|
| ❌ /usr/lib/ruby/1.9.1/json/common.rb:216:in `generate': only generation of JSON objects or arrays allowed (JSON::GeneratorError) from /usr/lib/ruby/1.9.1/json/common.rb:216:in `generate' from /usr/lib/ruby/1.9.1/json/common.rb:352:in `dump' from ./yaml2json.rb:6:in `' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ❌ /usr/lib/ruby/1.9.1/json/common.rb:216:in `generate': only generation of JSON objects or arrays allowed (JSON::GeneratorError) from /usr/lib/ruby/1.9.1/json/common.rb:216:in `generate' from /usr/lib/ruby/1.9.1/json/common.rb:352:in `dump' from ./yaml2json.rb:6:in `' |
|
|
|
| ❌ ConstructorError: could not determine a constructor for the tag 'tag:yaml.org,2002:merge' in "", line 1, column 1 | ❌ /usr/lib/ruby/1.9.1/json/common.rb:216:in `generate': only generation of JSON objects or arrays allowed (JSON::GeneratorError) from /usr/lib/ruby/1.9.1/json/common.rb:216:in `generate' from /usr/lib/ruby/1.9.1/json/common.rb:352:in `dump' from ./yaml2json.rb:6:in `' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ❌ ConstructorError: while constructing a mapping in "", line 1, column 1 expected a mapping or list of mappings for merging, but found scalar in "", line 1, column 5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ❌ Wide character in say at ./yaml2json.pl line 10, <> line 1. |
| ❌ /usr/lib/ruby/1.9.1/json/common.rb:216:in `generate': only generation of JSON objects or arrays allowed (JSON::GeneratorError) from /usr/lib/ruby/1.9.1/json/common.rb:216:in `generate' from /usr/lib/ruby/1.9.1/json/common.rb:352:in `dump' from ./yaml2json.rb:6:in `' |
|