检查是否存在JSON嵌套属性

时间:2018-10-08 21:11:24

标签: json ruby validation

我需要先对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 :(得分:3)

您可以使用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