【发布时间】:2019-03-02 19:34:20
【问题描述】:
今天我似乎无法解决以下问题。我正在解析来自 API 的 JSON 响应,该 API 可帮助我计划我的物品将装满多少箱以完成装运。
我已将来自 API 的 JSON 响应保存并解析为下面 Rails 中名为 API_response 的变量。现在,我特别需要计算每次"id"=>"Bin1" 出现在此响应中。
我在想,也许最好的方法是选择 "id"=>"Bin1" 并将其每次映射到一个数组,然后计算数组中的索引数,以便我有一个最终计数我会用多少个盒子?我该怎么做呢?
API_response = {"response"=>{"id"=>"1538005707_bc789275d7cc93eca86830e41a44f7a9", "bins_packed"=>[{"bin_data"=>{"w"=>12, "h"=>6, "d"=>12, "id"=>"Bin1", "used_space"=>57.8704, "weight"=>80, "used_weight"=>100, "stack_height"=>5, "order_id"=>"unknown"}, "items"=>[{"id"=>12, "w"=>10, "h"=>5, "d"=>10, "wg"=>80}]}, {"bin_data"=>{"w"=>12, "h"=>6, "d"=>12, "id"=>"Bin1", "used_space"=>57.8704, "weight"=>80, "used_weight"=>100, "stack_height"=>5, "order_id"=>"unknown"}, "items"=>[{"id"=>12, "w"=>10, "h"=>5, "d"=>10, "wg"=>80}]}, {"bin_data"=>{"w"=>12, "h"=>6, "d"=>12, "id"=>"Bin1", "used_space"=>57.8704, "weight"=>80, "used_weight"=>100, "stack_height"=>5, "order_id"=>"unknown"}, "items"=>[{"id"=>12, "w"=>10, "h"=>5, "d"=>10, "wg"=>80}]}], "errors"=>[], "status"=>1, "not_packed_items"=>[]}}
更新
我认为我真正喜欢做的是,对于 Bin1 的每次出现,将 bin 的权重推入一个新数组。所以我希望我上面的响应示例的最终结果是一个数组,例如Bin1_Array = [80, 80, 80]
【问题讨论】:
-
你需要
Bin1出现的次数,还是当id等于Bin1时items数组大小的总和?
标签: ruby-on-rails arrays json api hash