Я задал предыдущий вопрос о сериализации и валидации.Кто-то упомянул об использовании гема JSON, который позволяет мне сообщить моему объекту, как сериализовать его с помощью метода to_json
, однако Ruby, похоже, действительно легко выполняет МНОГО сложных вещей, однако, с другой стороны, некоторые действительно простые вещи кажутся быть довольно сложным, сериализация - одна из таких вещей.
Я хочу узнать, есть ли способ получить чистый объект:
class CleanClass
attr_accessor :variable1
attr_accessor :variable2
attr_accessor :variable3
end
cleanObject = CleanClass.new
В идеале я не хочу испачкать модель, я просто хочу передать это чему-нибудь и сообщить это то, каким должен быть тип вывода, и позвольте ему творить чудеса.
Примером может быть что-то вроде:
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)
Я хочу передать что-то объекту и получить выходные строки, а затем иметь возможность преобразовать это обратно.
Я знаю, что ActiveModel имеет функцию сериализации, но для этого мне нужно испачкать свой класс, и я не хочу менять модель, если это возможно. ActiveSupport, похоже, удовлетворяет критериям JSON, поскольку я могу просто назвать это, и он возьмет объект и выплюнет JSON, но я хотел бы поддерживать другие типы.
Было бы здорово получить любую дополнительную информацию!