# json文字列から指定したクラスのインスタンスを生成 def to_o(json, klass) a = klass.new JSON.parse(json).each do |k,v| if(a.respond_to?("set_"+k.to_s)) a.send("set_"+k.to_s, v) end end a end # オブジェクトからJSON文字列を生成 def to_j(obj) hash = {} obj.class.instance_methods(false).grep(/get_.*/).each do |e| method_name = e.to_s key_name = method_name[4..-1] hash[key_name] = obj.send(method_name) end hash.to_json end irb(main):001:0
![Object <=> JSON 相互変換 on Ruby - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/5558a54ac1162dd1b4246b96ad8ea073d5fa74f1/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9T2JqZWN0JTIwJTNDJTNEJTNFJTIwSlNPTiUyMCVFNyU5QiVCOCVFNCVCQSU5MiVFNSVBNCU4OSVFNiU4RiU5QiUyMG9uJTIwUnVieSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ODUxYzlhMTUwMzBjNmU3YTZiNTYwYzk2NDQzYmNlOGY%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwa2VkYW1hMTcmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTE5ZDUxZGM5NDUzOTEyNmEyNzdhMDEwMmUyNzc4MTQ2%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D0b22c33d2f412dfa18575a42d8346f92)