Elixir:
Работа с YAML

Как это сделать:

Elixir не включает в себя встроенную поддержку YAML, но вы можете использовать библиотеку yamerl. Сначала добавьте yamerl в ваш файл mix.exs:

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

После выполнения mix deps.get, вы можете разобрать YAML:

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)

Это выведет:

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

И для конвертации данных Elixir в YAML:

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

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

Это напечатает:

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

Подробнее

YAML, что означает “YAML Ain’t Markup Language” (рекурсивный акроним), существует с 2001 года. JSON и XML могут служить похожим целям, но фокус YAML на читаемости делает его популярным для конфигураций. yamerl, библиотека Erlang, адаптированная для Elixir через взаимодействие, является надежным выбором для разработчиков на Elixir. Помните, что YAML чувствителен к отступам, что делает разбор немного сложнее по сравнению с JSON.

Смотрите также