【发布时间】:2020-01-23 09:08:35
【问题描述】:
我正在尝试从此 API 响应中提取元素,但由于某种原因我无法做到。我有以下 API 响应正文: `
[
{
"ID": "295699",
"restriction": [
{
"restrictionTypeCode": "10001"
}
]
}
]
` 现在,我只想打印restrictionTypeCode
json_string = RestClient.get "#{$uri}", {:content_type => 'application/json'}
hash = JSON.parse(json_string)
code= hash['restriction']['restrictionTypeCode']
puts code
上面的代码出错了,没有显示restrictionTypeCode
【问题讨论】:
-
引发了什么错误?出自哪条线?你能粘贴堆栈跟踪吗?
-
谢谢@mrzasa。我更新了你的代码,但现在我在控制台中得到 Nil 值 $uri = "URL" $json_string = RestClient.get "#{$uri}", {:content_type => 'application/json'} $hash = JSON .parse($json_string) puts $hash.first&.dig(:restriction)&.first&.dig(:restrictionTypeCode) puts $hash.flat_map { |hsh| hsh[:restriction]&.map { |sub_hsh| sub_hsh[:restrictionTypeCode] } } 。当我输出 $json_string 或哈希时,我可以看到整个响应。但是当我输出您提供的 2 行时,我在控制台中为上面的两个“放置”得到空的 2 行
-
不是我,是 @SRack 帮助你 :)
标签: json ruby parsing hash extract