私はファラデーを使用して Web サービスから JSON でエンコードされたオブジェクトを取得していますが、Web サービスはキーと値のペアに恐ろしいキー文字列を使用しています。 .
Faraday によって取得されたキーを変換し、その結果を Ruby ハッシュに挿入するにはどうすればよいですか?
これが解決された問題であることを願っていますが、見つけるのは難しいです。(JSON.parse() でシンボルが文字列に変換されることについて多くの投稿を目にします)。
私はファラデーを使用して Web サービスから JSON でエンコードされたオブジェクトを取得していますが、Web サービスはキーと値のペアに恐ろしいキー文字列を使用しています。 .
Faraday によって取得されたキーを変換し、その結果を Ruby ハッシュに挿入するにはどうすればよいですか?
これが解決された問題であることを願っていますが、見つけるのは難しいです。(JSON.parse() でシンボルが文字列に変換されることについて多くの投稿を目にします)。
データをVirtusオブジェクトにマッピングすることを検討してください
https://github.com/solnic/virtus
class Foo
include Virtus.model
attribute :manager, String
attribute :description, String
def self.map(json)
# you only need to map the ones that differ
new(json.merge!({
manager: json["projectManager"],
description: json["Memo"]
})
end
end
次に、必要に応じてデータをループします (または、意味がある場合はトップレベルの仮想オブジェクトを作成します)。
payload = ... # json retrieved by Faraday as array of ruby hashes
foo_list = payload.map do |item|
Foo.map(item)
end