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.
Смотрите также
- Официальный репозиторий
yamerlна GitHub: https://github.com/yakaz/yamerl hexdocsдля Elixir по библиотекам YAML: https://hex.pm/packages?search=yaml&sort=recent_downloads- Официальный сайт YAML для спецификаций и многого другого: https://yaml.org
- Elixir School для изучения Elixir: https://elixirschool.com/en/