Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby: Общие вопросы > Как правильно обработать hash из json?


Автор: rrroman 18.12.2014, 14:50
Пытаюсь разобраться с простыми конструкциями руби. Получаю массив из json данныэ response = JSON.parse(RESPONSE) пытаюсь его обработать таким образом

Код

class GetFilm
    attr_accessor :group_theaters :parameter

    def initialize(*catalogue)
        title = self.get_data(catalogue, "film")
        @group_theaters = title
    end

def get_data(*catalogue, parameter)
        @array = catalogue.length
    end
end


Отправляю данные

Код

s = GetFilm.new(response.values)
puts s.group_theaters


Почему-то catalogue.length у меня всегда 1, изначально json имеет вид

Код

'{"catalog": { "1": { "title": "Left Behind", "theaters": ["Ukraine", "Big World"], }, "2": { "title": "Into the storm", "theaters": ["Ukraine", "Big World"], } }}'
Что делаю не так?

Автор: smartvpn 11.1.2015, 22:27
Когда вы получаете hash с помощью JSON.parse он состоит из одного корневого элемента:
Код

catalog: {...}


catalog.length - соответственно вернет вам размер этого хеша, равный 1

Приведенного кода недостаточно чтобы понять, что именно вы хотите сделать

Допустим получить title первого элемента в хеше:
Код

catalogue['catalog']['1']['title']

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)