Để đọc mục đích, tôi muốn có một thứ tự khóa cụ thể vào tệp json.Phím đặt hàng khi mã hóa bản đồ thành json với Poison
Tôi biết rằng khóa của bản đồ không có bất kỳ thứ tự nào và sau đó chúng ta không nên dựa vào đó, nhưng vì Poison không thể mã hóa các nhà cung cấp dịch vụ nên tôi không thấy cách thực hiện điều này.
iex(1)> %{from: "EUR", to: "USD", rate: 0.845} |> Poison.encode!
"{\"to\":\"USD\",\"rate\":0.845,\"from\":\"EUR\"}"
Kết quả tôi muốn là:
"{\"from\":\"EUR\", \"to\":\"USD\", \"rate\":0.845}"
Những cấu trúc tôi nên sử dụng để đạt được điều này với Poison?
Tôi cũng có yêu cầu này theo nghĩa nào đó. Chúng tôi đang lưu trữ vô số các đối tượng JSON nhỏ (dữ liệu đánh dấu) trong các tệp văn bản thuần túy. Bằng cách sắp xếp các trường theo một cách nhất định, dữ liệu đánh dấu có thể sắp xếp mà không cần giải nén/giải mã JSON để tiết kiệm một lượng lớn sức mạnh xử lý và cũng có thể sử dụng so sánh chuỗi đơn giản trên dữ liệu được mã hóa. Tuy nhiên, tôi thường đồng ý với bạn rằng nó có lẽ không nên được thực hiện một cách nhẹ nhàng. –