Elixir:
Làm việc với YAML

Làm thế nào:

Elixir không bao gồm hỗ trợ YAML tích hợp sẵn, nhưng bạn có thể sử dụng thư viện yamerl. Đầu tiên, thêm yamerl vào tệp mix.exs của bạn:

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

Sau khi chạy mix deps.get, bạn có thể phân tích 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)

Điều này sẽ xuất ra:

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

Và để chuyển đổi dữ liệu Elixir sang YAML:

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

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

Điều này in ra:

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

Sâu hơn

YAML, viết tắt của “YAML Ain’t Markup Language” (một từ viết tắt đệ quy), đã có từ năm 2001. JSON và XML có thể phục vụ mục đích tương tự nhưng sự tập trung vào tính dễ đọc của YAML khiến nó trở nên phổ biến cho cấu hình. yamerl, một thư viện Erlang được điều chỉnh cho Elixir thông qua tính tương thích, là một lựa chọn vững chắc cho các lập trình viên Elixir. Nhớ lại, YAML rất nhạy cảm với thụt lề, khiến việc phân tích trở nên phức tạp hơn so với JSON.

Xem thêm