-1

適切な言い回しがないため、オブジェクト スタイルの表記法が含まれているように見える API から配列を受け取りました。

配列なので、明らかにキーや値でアクセスすることはできません。この特定のオブジェクト タイプには、ハッシュまたは JSON に変換してからハッシュに変換できるメソッドがありません。

これをキーと値でデータにアクセスできるハッシュに変換する最も適切な方法は何ですか?

出力:

 [#<ObjectType::ObjectRef:0x30f2862
 @_ref="record:full/data/location/setting/partition",
 @configured=false,
 @name="John Doe",
 @addr="10.10.10.10">]

別の方法として、これを複数の要素を持つ配列に変換できる場合 (1 つの大きなチャンク要素ではなく)、それを CSV に解析し、Ruby の外部でフィルター処理することもできます。新しい配列の要素には、「値」が含まれます (例: false、「John Doe」、「10.10.10.10)」。

4

1 に答える 1

0

これを試して:

array # =>  [#<ObjectType::ObjectRef:0x30f2862
             @_ref="record:full/data/location/setting/partition",
             @configured=false,
             @name="John Doe",
             @addr="10.10.10.10">]
array.map { |a| {configured: a.configured, name: a.name, addr: a.addr} }

# or if you can't access the instance variables
array.map do |a|
  {
    configured: a.instance_variable_get(:@configured), 
    name: a.instance_variable_get(:@name), 
    addr: a.instance_variable_get(:@addr)
  }
end # => [{configured: false, name: "John Doe", addr: "10.10.10.10"}]

# and if you want an array
array.map do |a|
  [
    a.instance_variable_get(:@configured), 
    a.instance_variable_get(:@name), 
    a.instance_variable_get(:@addr)
  ]
end # => [[false, "John Doe", "10.10.10.10"]]
于 2016-06-18T04:58:13.220 に答える