Проверьте наличие вложенного атрибута JSON - PullRequest
0 голосов
/ 09 октября 2018

Мне нужно проверить, существует ли вложенный атрибут в объекте JSON, прежде чем что-то делать с ним.Как я могу это сделать?

Я знаю, что могу протестировать один уровень за раз, но это кажется сумасшедшим, когда сложная структура данных.(Код Ruby)

#!/usr/bin/ruby

require 'json'

json_string = '
    {
        "name" : "Matias",
        "age" : 31,
        "team" : {
            "name" : "Some team",
            "size" : 3
        }

    }
'

json_obj = JSON.parse(json_string)


puts json_obj['name'] if json_obj['fake']['name']

1 Ответ

0 голосов
/ 09 октября 2018

Вы можете использовать Hash#dig, который будет просто возвращать nil, как только ключ не найден:

json_obj.dig('fake', 'name')

Я предполагаю, что вы используете последнюю версию ruby ​​(> = 2.3).

Документация для dig здесь: http://ruby -doc.org / core-2.5.1 / Hash.html # method-i-dig

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...