Hice una pregunta previa sobre serialización y validación. Alguien mencionó el uso de la gema JSON que me permite decirle a mi objeto cómo serializar con el método to_json
, sin embargo, Ruby parece hacer MUCHAS cosas complicadas con mucha facilidad, sin embargo por el otro lado algunas cosas realmente simples parecen ser bastante complicadas, la Serialización es una de esas cosas¿Serializar un objeto a JSON, XML, YAML?
quiero saber si hay una manera de tener un objeto limpio:
class CleanClass
attr_accessor :variable1
attr_accessor :variable2
attr_accessor :variable3
end
cleanObject = CleanClass.new
Idealmente, yo no quiero ensuciar el modelo, sólo quiero pasarlo a algo y dígale cuál debe ser el tipo de salida y deje que funcione su magia.
Un ejemplo sería algo así como:
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)
Quiero pasar algo de un objeto, y obtener las cadenas emiten, a continuación, ser capaz de convertir de nuevo.
Sé que ActiveModel tiene funcionalidad de serialización pero necesito ensuciar mi clase para hacer esto, y no quiero cambiar el modelo si es posible. ActiveSupport parece satisfacer los criterios JSON ya que puedo llamarlo y tomará un objeto y escupirá el JSON, pero me gustaría apoyar otros tipos.
¡Cualquier información adicional sería genial!
'JSON.dump (objeto)' y 'JSON.parse (cadena) ' – Kris