6月 122012
<< プログラムの写経 || メールは滅んだほうがいい >>
こういうjsonへのシリアライズ方法が書かれてないクラスを使って、to_jsonすると
#!/usr/bin/env ruby
require 'rubygems'
require 'json'
class User
attr_reader :id, :name
def initialize(id, name)
@id = id
@name = name
end
end
users = Array.new
['user1', 'user2', 'shokai'].each_with_index{|name,id|
users.push User.new(id, name)
}
puts users.to_json
クラス名が出てきてしまう
["#<User:0x007fc17b8bda50>","#<User:0x007fc17b8bda28>","#<User:0x007fc17b8bda00>"]
JSON implementation for Rubyに、to_json(*a)を定義しろって書いてあった
#!/usr/bin/env ruby
require 'rubygems'
require 'json'
class User
attr_reader :id, :name
def initialize(id, name)
@id = id
@name = name
end
## JSON作る
def to_json(*a)
{
:id => @id,
:name => @name
}.to_json(*a)
end
end
users = Array.new
['user1', 'user2', 'shokai'].each_with_index{|name,id|
users.push User.new(id, name)
}
puts users.to_json
ちゃんと出てきた
[{"id":0,"name":"user1"},{"id":1,"name":"user2"},{"id":2,"name":"shokai"}]