在JSON响应中访问属性

时间:2016-04-08 15:42:12

标签: ruby-on-rails ruby json

我想在这个JSON响应中抓取图像'src',但是我的尝试让我处于松散状态。任何帮助都会很棒。

我的模特

  def test
    response = self.class.get("URLFORRESPONSE")
    @elements = response.parsed_response["extractorData"]
    @parsed = @elements.collect { |e| e['src'] }
  end

JSON响应

{
  "extractorData" : {
    "url" : "http://testwebsite.com/",
    "resourceId" : "409417ee21618b70d74b03231a793c2d7",
    "data" : [ {
      "group" : [ {
        "image" : [ {
          "src" : "test0.jpg"
        } ]
      }, {
        "image" : [ {
          "src" : "test1.jpg"
        } ]
      }, {
        "image" : [ {
          "src" : "test2.jpg"
        } ]
      }, {
        "image" : [ {
          "src" : "test3.jpg"
        } ]
      }, {
        "image" : [ {
          "src" : "test4.jpg"
        } ]
      }

1 个答案:

答案 0 :(得分:0)

我知道这很丑,但我希望这种消化有所帮助。 由于HTTParty.parsed_response返回一个哈希并假设你正在使用ruby 2.3,你可以这样做:

console.assert

看到它:

@elements = response.parsed_response["extractorData"]
@elements.dig('data').collect{|h| h.dig('group').collect{|h| h.dig('image').collect{|h| h.dig('src')}}}