Tôi đã hỏi một câu hỏi trước về serialization và validation. Có ai đó đã đề cập đến việc sử dụng đá quý JSON, cho phép tôi nói với đối tượng của tôi cách serialize với phương thức to_json
, tuy nhiên Ruby dường như làm rất nhiều thứ phức tạp thực sự dễ dàng, tuy nhiên ở một số thứ thực sự đơn giản có vẻ khá phức tạp, một trong những điều đó.Nối tiếp một đối tượng thành JSON, XML, YAML?
Tôi muốn tìm hiểu nếu có một cách để có một đối tượng sạch:
class CleanClass
attr_accessor :variable1
attr_accessor :variable2
attr_accessor :variable3
end
cleanObject = CleanClass.new
Lý tưởng nhất, tôi không muốn bẩn mô hình, tôi chỉ muốn vượt qua nó để một cái gì đó và cho nó biết loại đầu ra nên là gì và để nó hoạt động như thế nào.
Một ví dụ sẽ là một cái gì đó như:
jsonOutput = MagicSerializer::Json.Serialize(cleanObject)
xmlOutput = MagicSerializer::Xml.Serialize(cleanObject)
yamlOutput = MagicSerializer::Yaml.Serialize(cleanObject)
revertedJsonObject = MagicSerializer::Json.Unserialize(jsonOutput)
revertedXmlObject = MagicSerializer::Xml.Unserialize(xmlOutput)
revertedYamlObject = MagicSerializer::Yaml.Unserialize(yamlOutput)
Tôi muốn vượt qua một cái gì đó một đối tượng, và nhận được chuỗi outputted, sau đó có thể chuyển đổi nó trở lại.
Tôi biết ActiveModel có chức năng tuần tự hóa nhưng tôi cần phải làm bẩn lớp học của mình để thực hiện việc này và tôi không muốn thay đổi mô hình nếu có thể. ActiveSupport dường như thỏa mãn các tiêu chuẩn JSON vì tôi chỉ có thể gọi nó và nó sẽ lấy một đối tượng và nhổ ra JSON, nhưng tôi muốn hỗ trợ các kiểu khác.
Mọi thông tin khác sẽ tuyệt vời!
'JSON.dump (đối tượng)' và 'JSON.parse (string) ' – Kris