提问人:RaHan 提问时间:12/21/2022 最后编辑:RaHan 更新时间:12/21/2022 访问量:57
在 ruby 中解析 JSON 中点分隔字符串的值
Parse value of the dot separated string from JSON in ruby
问:
如何从 ruby 中的 json 中获取输入字符串的值。this.is.string
JSON 文件如下所示:test.json
{
"this": {
"is": {
"string": "value"
}
}
}
# Opening the json file to read the data
json_file = File.open("test.json")
# Reading the data from the json file
data_from_file = JSON.load(json_file)
get_value = data_from_file["this"]["is"]["string"]
有效,但是如何确定我需要使用多少元素?data_from_file["this"]["is"]["string"]
如果输入字符串是 ?请问有什么确定的方法可以实现这一目标吗?this.is.yet.another.string
更新
这似乎工作正常:
def get_value(data, query)
query.split('.').inject(data) do |v, k|
k = k.to_i if v.is_a? Array
v.fetch(k)
end
end
get_value(data_from_file, 'this.is.string')
=> "value"
答: 暂无答案
评论
k.to_i
"RaHan".to_i #=> 0
data.dig(*query.split('.'))
Integer(k, exception:false)