YAML Serialization with Collection Types

Language Library Serialize Deserialize HashMap Syntax HashMap Type Array Syntax List Type Object Syntax
Java SnakeYAML Yaml yaml = new Yaml();yaml.dump(data); yaml.load(input) Map<String, Object> Map<String, Object> List List POJOs (Plain Java Objects)
Swift Yams try Yams.dump(object: data) try Yams.load(yaml: input) [String: Any] [String: Any] [Any] [Any] Structs/Classes conforming to Codable
PHP symfony/yaml Yaml::dump(data) Yaml :  : parse(input) array (associative) array array (indexed) array stdClass or arrays
Perl YAML::XS Dump(data) Load(input) Hash Hash Array Array Blessed objects
Kotlin SnakeYAML val yaml = Yaml()yaml.dump(data) yaml.load(input) Map<String, Any> Map<String, Any> List List Data classes
Python PyYAML yaml.dump(data) yaml.safe_load(input) dict dict list list class instances or dicts
Ruby YAML YAML.dump(data) YAML.load(input) Hash Hash Array Array Structs or custom classes
JavaScript js-yaml yaml.dump(data) yaml.load(input) Object Object Array Array Object
Delphi YAML.pas YAMLDump(Data) YAMLLoad(Input) TDictionary<String, Variant> TDictionary<String, Variant> TArray TArray Records or Classes
FreePascal fpjsonyaml WriteYAML(data) ReadYAML(input) TStringHashTable TStringHashTable TFPList TFPList TObject-derived
F# YamlDotNet let serializer = Serializer()serializer.Serialize(writer, data) Deserializer().Deserialize(reader) Dictionary<string, obj> Dictionary<string, obj> List List Records or Classes
Go gopkg.in/yaml.v3 yaml.Marshal(data) yaml.Unmarshal(input, &out) map[string]interface{} map[string]interface{} []interface{} []interface{} Structs