正在从这个 JSON API 获取一些产品,我想知道——我真的需要吗Hashie::Mash
?
直播应用程序:http://runnable.com/U-QJCIFvY2RGWL9B/pretty-json-keys http://runnable.com/U-QJCIFvY2RGWL9B/pretty-json-keys
main_controller.rb
:
response = prettify(JSON.parse(@json_text))
mashie = Hashie::Mash.new(response)
@products = []
mashie.products.each do |product|
product.extend Hashie::Extensions::DeepFetch
product.price = product.deep_fetch :sale_price
@products << product
end
@products
我试过这个:
response = prettify(JSON.parse(@json_text)['products'])
@products = []
response.each do |product|
product.extend Hashie::Extensions::DeepFetch
product.price = product.deep_fetch :sale_price
@products << product
end
@products
但这会返回:
Hashie::Extensions::DeepFetch::UndefinedPathError in MainController#index
Could not fetch path (sale_price) at sale_price
您可能想做这样的事情:
mashie.products.each do |product|
product.extend Hashie::Extensions::DeepFetch
product.price = product.deep_fetch(:sale_price) { 'Not Found' }
# Returns 'Not Found' if it does not find the key sale_price. It can be anything, like nil, 0, 'Not Found'
@products << product
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)