0

私はファラデーを使用して Web サービスから JSON でエンコードされたオブジェクトを取得していますが、Web サービスはキーと値のペアに恐ろしいキー文字列を使用しています。 .

Faraday によって取得されたキーを変換し、その結果を Ruby ハッシュに挿入するにはどうすればよいですか?

これが解決された問題であることを願っていますが、見つけるのは難しいです。(JSON.parse() でシンボルが文字列に変換されることについて多くの投稿を目にします)。

4

1 に答える 1

1

データを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
于 2014-05-21T01:08:50.210 に答える