3

to_json の出力でフィールド値を null から "" に変更するにはどうすればよいですか?

現在復帰しています

{"name":"priya","mobile":null} 

代わりに私が欲しい

{"name":"priya","mobile":""}

また

{"name":"priya","mobile":"NA"}

提案してください

4

2 に答える 2

1
s = {"name" => "pryia", "mobile" => nil} 

Hash[*s.map{|k, v| [k, v || "NA"]}.flatten]
# => "name"=>"pryia", "mobile"=>"NA"}

Hash[*s.map{|k, v| [k, v || "NA"]}.flatten].to_json
# => "{\"name\":\"pryia\",\"mobile\":\"NA\"}"
于 2012-05-30T09:52:50.897 に答える
1

philee の回答に追加するには、モデルに as_json メソッドを追加できます。

def as_json(opts={})
  json = super(opts)
  Hash[*json.map{|k, v| [k, v || "NA"]}.flatten]
end
于 2012-05-30T11:44:52.703 に答える