Páginas

1 de agosto de 2011

Gerar JSON a partir de objeto Ruby

Que eu saiba não existe algo pronto no Ruby que, a partir de um objeto, gere um Json com todas as propriedades dele.

Encontrei na web um exemplo que mostra como criar um módulo que gera o Json de todas as propriedades de algum objeto.

Porém este exemplo assume apenas que as propriedades sejam simples. Quando a propriedade for um Array (que não inclui o módulo em sua origem), ele chega vazio no Json.

Fiz duas adaptações no exemplo:
1) Gerar Json de elementos simples de um Array
2) Gerar Json dos elementos (do Array) que têm o módulo incluído



Então, o código abaixo deve funcionar :)

p = Person.new
p.name = "Leandro"
p.age = 24

n1 = Note.new("first note")
a1 = Address.new("cool!")
n1.addresses = []
n1.addresses << a1

n2 = Note.new("last note")

p.notes = []
p.notes << n1
p.notes << n2

p.simple_notes = []
p.simple_notes << "abc"
p.simple_notes << "123"
  
p.to_json
Tente imprimir "p.to_json" e verás todas as propriedades em cascata bonitinhas dentro do Json!

Nenhum comentário: