Ruby 如何查找和存储JSON数组中具有特定键值对的所有元素

Ruby 如何查找和存储JSON数组中具有特定键值对的所有元素,ruby,json,Ruby,Json,我试图解析JSON并提取一些要显示的值 JSON格式为: { "orders": [ { ... "order_number": 12345, "status" : "processing", ... 我在所有订单中解析了这个JSON响应示例: response = http.request(request) all_orders = JSON.parse(response.body) # Checking for 'processing' orders... processing_

我试图解析JSON并提取一些要显示的值

JSON格式为:

 {
 "orders": [
 {
 ...
"order_number": 12345,
"status" : "processing",
...
我在
所有订单中解析了这个JSON响应示例:

response = http.request(request)
all_orders = JSON.parse(response.body)

# Checking for 'processing' orders...
processing_orders = all_orders["orders"].find{ |h| h['status'] == 'processing'    }['order_number']
我想显示状态为“正在处理”的匹配的
订单号
,但是当我输入:

puts "processing_orders"
它只打印了一个值,而我确信还有更多值

我做错什么了吗?我对这方面的工作还比较陌生,我已经尽了最大努力尝试自己的解决方案。

请查看查找方法:

将枚举中的每个项传递给块。返回哪个块的第一个值 这不是假的

Find将只返回一个条目

您希望使用类似的方法,然后使用map来获取订单号:

processing_orders = all_orders["orders"].select{ |h| h['status'] == 'processing'    }.map{|order| order['order_number']}
查看查找方法的
find

将枚举中的每个项传递给块。返回哪个块的第一个值 这不是假的

Find将只返回一个条目

您希望使用类似的方法,然后使用map来获取订单号:

processing_orders = all_orders["orders"].select{ |h| h['status'] == 'processing'    }.map{|order| order['order_number']}

put
字符串是打字错误吗?
put
字符串是打字错误吗?太好了,效果非常好!谢谢你,我已经戳了一个小时左右了。太好了,效果非常好!谢谢你,我已经戳了一个多小时了。