我有一个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中执行此操作?
答案 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'
之类的操作。