在Ruby

时间:2018-05-25 00:01:21

标签: json ruby

我有一个JSON返回(它是一个哈希?数组?JS对象?),其中每个条目都是一个人的信息,并遵循以下格式:

{"type"=>"PersonSummary", 
"id"=>"123", "properties"=>{"permalink"=>"personname", 
"api_path"=>"people/personname"}} 

我想浏览每个条目,只输出“id”

我已将整个JSON拉“响应”放入“结果”

result = JSON.parse(response)

然后,我想通过结果并打印该人的ID和“api_path”:

  

result.each do | print id AND api_path |

我如何在Ruby中执行此操作?

1 个答案:

答案 0 :(得分:2)

您需要使用JSON.parse的唯一时间是,如果您有一个字符串,则需要解析为Hash。例如:

result = JSON.parse('{ "type" : "PersonSummary", "id" : 123, "properties" : { "permalink" : "personname", "api_path" : "people/personname" } }')

获得Hash后,result可以通过key提供,result[:id]result['id'](两者都可以),或者您也可以使用以下代码迭代哈希。

如果您需要访问api_path值,则可以使用result['properties']['api_path']

result = { 'type' => 'PersonSummary', 'id' => 123, 'properties' => { 'permalink' => 'personname', 'api_path' => 'people/personname' } }

result.each do |key, value|
  puts "Key: #{key}\t\tValue: #{value}"
end

如果您只想显示某些值,您甚至可以执行puts value if key == 'id'之类的操作。