Mat*_*iby 0 ruby json ruby-on-rails
我有这个:
artists = search_object.map{|x| x["artistName"]}.uniq
=> ["Metallica", "Madonna", "Lady Gaga"]
Run Code Online (Sandbox Code Playgroud)
我需要这种格式json:
{"artists":[{"name":"Metallica"},{"name":"Madonna"},{"name":"Lady Gaga"}]}
Run Code Online (Sandbox Code Playgroud)
我试过这个:
>> @api = {}
=> {}
>> @api[:artists] = artists
=> ["Metallica", "Madonna", "Lady Gaga"]
>> @api
=> {:artists=>["Metallica", "Madonna", "Lady Gaga"]}
Run Code Online (Sandbox Code Playgroud)
我在这样的api调用中需要它:
respond_to do |format|
format.json { render :json => @api}
end
Run Code Online (Sandbox Code Playgroud)
但是什么回来是不合适的json.
我如何以这种格式获得它?
一个简单的Enumerable#map应该做:
artists = ["Metallica", "Madonna", "Lady Gaga"]
@api = {:artists => artists.map { |artist| {:name => artist} }}
#=> {:artists=>[{:name=>"Metallica"}, {:name=>"Madonna"}, {:name=>"Lady Gaga"}]}
Run Code Online (Sandbox Code Playgroud)
请注意,您可以使用符号作为哈希键(它更惯用),因为它们作为普通字符串转换为JSON.
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |