Ruby 如何查找和存储JSON数组中具有特定键值对的所有元素
我试图解析JSON并提取一些要显示的值 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_
{
"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
字符串是打字错误吗?太好了,效果非常好!谢谢你,我已经戳了一个小时左右了。太好了,效果非常好!谢谢你,我已经戳了一个多小时了。