私はシリアル化と検証について前の質問をしました。誰かが私のオブジェクトにto_json
メソッドでシリアル化する方法を伝えることを可能にするJSONの宝石を使って言いましたが、Rubyは複雑なものがたくさんあるようですが、実際にはシンプルなものはかなり複雑です。それらの事の一つ。オブジェクトをJSON、XML、YAMLにシリアル化しますか?
私はクリーンなオブジェクトを持つ方法があるかどうかを知りたい:
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を吐き出すことになりますが、他のタイプをサポートしたいと思います。
これ以上の情報はありません。あなたはコアタイプ(周りに独自のクラスをラップする必要がありますJSONのためにJSONとYAMLについては
'JSON.dump(オブジェクト)'と 'JSON。parse(string) ' – Kris