2012-05-09 33 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似乎工作,如果其中一项不包含[“名称”],我该如何防范呢? –

相关问题