JSONの宝石を使用してJSONを解析して生成する方法を学習しています。私は簡単にデータのハッシュを作成し、それをJSONに生成することができます。しかし、クラスのインスタンス(Personインスタンスなど)を取得し、そのインスタンス変数をすべてJSONに変換するためのハッシュの中に入れることについては、私は頭がおかしくなります。JSON gemを使用してカスタムオブジェクトをJSONに変換する
require "json"
class Person
def initialize(name, age, address)
@name = name
@age = age
@address = address
end
def to_json
end
end
p = Person.new('John Doe', 46, "123 Elm Street")
p.to_json
は私が人のオブジェクトを取得し、JSONに変換し、そのインスタンス変数のすべてを持つことができるように.to_json
メソッドを作成したい:
この
は、私は問題を抱えています例です。私がする必要があると思うのは、Personのすべてのインスタンス変数をとり、ハッシュに入れてJSON.generate(hash)
と呼ぶことです。私は今、それをどうやって行うのかについての脳のおならを持っています。だから、誰かが私が
to_json
メソッドを完了するのを手伝ったり、それを実装するより良い方法を提案したりすることができますか?ありがとう!
def to_json(*a)
{
'json_class' => self.class.name,
'data' => Your data
}.to_json(*a)
end
json_class
キーはにデータを渡すためにどのようなクラスを決定するためにJSONの宝石で使用されます。
既にヘルパーがあなたのために行われているRailsを使用していて、簡単に '.to_hash'または'.to_json'を実行することができます。私のソースの 'author_list'アクションを見てください:https://github.com/shybovychych/strong-sword/blob/master/app/controllers/quotes_controller.rb#L29 – shybovycha