我创建了以下类
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
我现在可以使用此
将其转换为jsonContact.new(1,'nik',10).to_json
=> "{\"json_class\":\"Contact\",\"data\":{\"id\":1,\"name\":\"nik\",\"phone\":10}}"
但是当我在它上面调用JSON.parse
时会出现错误。
JSON.parse(Contact.new(1,'nik',10).to_json)
NoMethodError: undefined method `[]' for nil:NilClass
from (irb):44:in `json_create'
我从this教程中选择了语法。
答案 0 :(得分:3)
删除json_create
方法中的符号。
def self.json_create(o)
new( o['data']['id'], o['data']['name'], o['data']['phone'] )
end
答案 1 :(得分:0)
使用as_json
代替to_json
。