2012-05-09 34 views
3

我是新的紅寶石,我不是類似的代碼塊... 我怎樣才能得到所有的JSON格式文本的關鍵要素?Ruby:如何從json格式獲取所有關鍵元素?

text= "[{ "name" : "car", "status": "good"}, 
{ "name" : "bus", "status": "bad"},{ "name" : "taxi", "status": "soso"}]" 

從文本,它與樣形式JSON字符串, 如何可以僅提取名稱值和輸入到一個數組

期望的輸出==> [汽車,公共汽車,出租車]

回答

10

您需要首先解析JSON數據:

require('json') 

text = '[{ "name" : "car", "status": "good"}, { "name" : "bus", "status": "bad"},{ "name" : "taxi", "status": "soso"}]' 
data = JSON.parse(text) 

然後,你可以簡單地收集物品:

p data.collect { |item| item['name'] } 

如果你沒有對每一個項目的名字和你想有一個默認值,而不是:

p data.collect { |item| item.fetch('name', 'default value') } 

如果你只想跳過它們:

p data.collect { |item| item['name'] }.compact 
+0

THX似乎工作,如果其中一項不包含[「名稱」],我該如何防範呢? –

相關問題