从ruby中json数组中的json获取值
我有以下JSON对象:从ruby中json数组中的json获取值,json,ruby,Json,Ruby,我有以下JSON对象: [ { "name":"x", "value":"y" }, { "name":"y", "value":"z" }, { "name":"w", "value":"q" } ] 如何从w中获取值? 我试过这样的方法: puts json['w'] 但是不起作用假设您有这样一个JSON字符串: json = '[ {
[
{
"name":"x",
"value":"y"
},
{
"name":"y",
"value":"z"
},
{
"name":"w",
"value":"q"
}
]
如何从w中获取值?
我试过这样的方法:
puts json['w']
但是不起作用假设您有这样一个JSON字符串:
json = '[
{
"name":"x",
"value":"y"
},
{
"name":"y",
"value":"z"
},
{
"name":"w",
"value":"q"
}
]'
如果它只是名称
和值
,并且没有重复的名称,则可以将其解析为散列并简化散列,如下所示:
require 'json'
json = JSON.parse(json)
json_hashed = json.map(&:values).to_h
#=> {"x"=>"y", "y"=>"z", "w"=>"q"}
所以你可以打电话:
json_hashed['w'] #=> "q"
Ruby中没有JSON对象。您要么有一个字符串,要么有一个哈希数组。在第二种情况下,尝试
json.find{h | h['name']='w'}['value']
类似于@pavels comment,但具有防止空值的保护json.find{h | h | h['name]='w'}.[](:value)
-即给定名称没有名称/值对“但不起作用”,您得到的错误/结果是什么?请阅读“”和“”。我们不知道你尝试了什么<代码>放置json['w']并没有告诉我们足够的信息。您可以通过与一个自Ruby 2.6.0以来可用的块json.to_h(&:values)
一起使用来缩短它。我还建议对多行字符串使用<代码>json=