Elixir:
Werken met YAML

Hoe:

Elixir bevat geen ingebouwde YAML-ondersteuning, maar je kunt de yamerl bibliotheek gebruiken. Voeg eerst yamerl toe aan je mix.exs bestand:

defp deps do
  [{:yamerl, "~> 0.8"}]
end

Na het uitvoeren van mix deps.get, kun je YAML parsen:

yml_data = """
name: John Doe
age: 30
langs:
  - Elixir
  - Ruby
  - Haskell
"""

parsed_data = :yamerl_constr.string(yml_data) |> Enum.take(1)
IO.inspect(parsed_data)

Dit zal uitvoeren:

[
  %{
    "age" => 30,
    "langs" => ["Elixir", "Ruby", "Haskell"],
    "name" => "John Doe"
  }
]

En om Elixir data naar YAML om te zetten:

data = %{
  name: "John Doe",
  age: 30,
  langs: ["Elixir", "Ruby", "Haskell"]
}

yml_string = :yamerl.encode(data)
IO.puts yml_string

Dit print:

---
age: 30
langs:
  - Elixir
  - Ruby
  - Haskell
name: John Doe

Diepgaande duik

YAML, wat staat voor “YAML Ain’t Markup Language” (een recursief acroniem), bestaat sinds 2001. JSON en XML kunnen vergelijkbare doeleinden dienen, maar de focus van YAML op leesbaarheid maakt het populair voor configuraties. yamerl, een Erlang bibliotheek aangepast voor Elixir via interoperabiliteit, is een solide keuze voor Elixir-ontwikkelaars. Vergeet niet, YAML is gevoelig voor inspringing, wat het parsen een beetje lastiger maakt in vergeliking met JSON.

Zie ook