Estoy aprendiendo a analizar y generar JSON con la joya JSON. Puedo crear fácilmente un hash de datos y generar eso en JSON; sin embargo, estoy teniendo un pedo cerebral cuando se trata de tomar una instancia de una clase (como una instancia de persona) y poner todas sus variables de instancia dentro de un hash para convertirlas en JSON.Convirtiendo un objeto personalizado en JSON utilizando la gema JSON
Este es el ejemplo que estoy teniendo problemas con:
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
Quiero crear un método .to_json
para que pueda tomar un objeto persona y tienen todas sus variables de instancia convertidas en JSON. Lo que creo que debo hacer es tomar todas las variables de instancia de la Persona, ponerlas en un hash y luego llamar al JSON.generate(hash)
. Estoy teniendo un pedo cerebral sobre cómo hacer eso ahora. Entonces, ¿puede alguien ayudarme a completar el método to_json
, o quizás sugerir una mejor manera de implementarlo? ¡Gracias!
Si está utilizando Rails, ese helper ya está hecho para usted y puede obtener fácilmente lo que quiere ejecutar ' .to_hash' o' .to_json'. Eche un vistazo a mi fuente para la acción 'author_list': https://github.com/shybovycha/strong-sword/blob/master/app/controllers/quotes_controller.rb#L29 –
shybovycha