获得漂亮的Rubified哈希键的最佳方法是什么?
IE中。 someKey
变为some_key
。
Hashie::Trash - 如果没有先定义每个键,也就是不可能。 property :some_key, from: :someKey
- 不是很漂亮。
https://github.com/tcocca/rash - 遗憾的是breaks Hashie::Extensions::DeepFetch我打算稍后使用。
Rails ActiveSupport's underscore
- 不清楚如何将其应用于我的用例。
现场演示应用:http://runnable.com/U-QJCIFvY2RGWL9B/pretty-json-keys
class MainController < ApplicationController
def index
@json_text = <<END
...
END
response = JSON.parse(@json_text)['products']
@products = []
response.each do |product|
@products << product['salePrice']
# Seeking the best way to make this say:
# @products << product['sale_price']
end
end
end
答案 0 :(得分:1)
好吧,你总是可以翻译成新的哈希:
def self.prettify(x)
x.is_a?(Hash) ? Hash[ x.map{|k,v| [k.underscore, prettify(v)]} ] :
x.is_a?(Array) ? x.map{|v| prettify(v) } : x
end
pretty_json_hash = prettify(JSON.parse(@json_text))
注意:如果你不能在这个级别编写代码,那么很难获得Rails的成功。