Ruby:如何从json格式获取所有关键元素?

Kit*_* Ho 3 ruby

我是ruby的新手,我与代码块并不相似......我怎样才能获得json格式文本中的所有关键元素?

text= "[{ "name" : "car", "status": "good"},
{ "name" : "bus", "status": "bad"},{ "name" : "taxi", "status": "soso"}]"
Run Code Online (Sandbox Code Playgroud)

从文本中,它是一个json格式的字符串,如何只提取名称值并输入到数组中

期望的输出==> [汽车,公共汽车,出租车]

KAR*_*ván 11

您需要首先解析JSON数据:

require('json')

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

然后你可以简单地收集物品:

p data.collect { |item| item['name'] }
Run Code Online (Sandbox Code Playgroud)

如果您没有每个项目的名称,而您想要一个默认值:

p data.collect { |item| item.fetch('name', 'default value') }
Run Code Online (Sandbox Code Playgroud)

如果你想跳过它们:

p data.collect { |item| item['name'] }.compact
Run Code Online (Sandbox Code Playgroud)