我需要先对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']
答案 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