Rails ActiveSupport 4.1+ 有很多問題,在於 custom json 的部分,像是 json merge之類的
今天找到了蓋回來的方式,類似
[Object, Array, FalseClass, Float, Hash, Integer, NilClass, String, TrueClass].each do |klass|
klass.class_eval do
alias_method :to_json , :to_json_without_active_support_encoder
end
end
這樣就會變成 original Ruby JSON 而非 ActiveSupport/JSON
之後就可以使用類似的語法來建立JsonString(json source merge)
class JsonString
def initialize(source)
@source = source
end
def to_json(encoder)
@source
end
end
{:values => JsonString.new("{\"wer\":123}")}.to_json
#=> {"values":{"wer":123}}
Orz" &這篇花了一天時間來 trace code ...||| 本來想用正規的方式幹,但發覺到最後只剩下覆寫回來的方式之類的,因為用它的方式實在是太困難了啊|||
沒有留言:
張貼留言