我需要从json记录中获取一些值并提取如下所示
curr_json_doc['title']['genre'].map { |s| s['name'] }.join(',')
Run Code Online (Sandbox Code Playgroud)
但是对于某些记录,curr_json_doc ['title'] ['genre']可以是空白的.所以我想对map和join()使用try函数.
我尝试过如下
curr_json_doc['title']['genre'].try(:map, { |s| s['name'] }).try(:join, (','))
Run Code Online (Sandbox Code Playgroud)
但它没有用.
Mar*_*pka 10
您没有正确传递阻止.块被传递给参数括号外的方法:
curr_json_doc['title']['genre'].try(:map) { |s| s['name'] }.try(:join, ',')
Run Code Online (Sandbox Code Playgroud)
只需删除空字符串然后映射即可。您可以使用delete_if它来删除空格。
curr_json_doc['title']['genre'].delete_if(&:empty?).map {|s| s['name'] }.join(',');
Run Code Online (Sandbox Code Playgroud)