/ Nemožno analyzovať json s ruby ​​- ruby, json, parsing

Nemožno analyzovať json pomocou ruby ​​- ruby, json, parsovanie

Vytvoril som nasledujúcu triedu

  class Contact
def initialize(id, name, phone)
@id = id
@name = name
@phone = phone
end

def to_json(*a)
{
json_class: self.class.name,
data: { id: @id, name: @name, phone: @phone }
}.to_json(*a)
end

def self.json_create(o)
new( o[:data][:id], o[:data][:name], o[:data][:phone] )
end
end

Teraz môžem pomocou tohto previesť na json

Contact.new(1,"nik",10).to_json
=> "{"json_class":"Contact","data":{"id":1,"name":"nik","phone":10}}"

Keď však zavolám, exploduje s chybou JSON.parse na to.

JSON.parse(Contact.new(1,"nik",10).to_json)
NoMethodError: undefined method `[]" for nil:NilClass
from (irb):44:in `json_create"

Zobral som syntax z toto tutorial.

odpovede:

3 pre odpoveď č. 1

Zbavte sa symbolov vo vašom json_create metóda.

def self.json_create(o)
new( o["data"]["id"], o["data"]["name"], o["data"]["phone"] )
end

0 pre odpoveď č. 2

použitie as_json namiesto to_json.