Groovy 未从列表中删除空值

Groovy 未从列表中删除空值,groovy,Groovy,我使用下面的脚本从JSON消息中查询值,并返回具有唯一值和非空值的列表 语法不起作用,空值仍然存在 def uniqueProfiles = jsonpath(r2,'$..[*].estancias[*].huespedes[0].huesped') def profiles = (uniqueProfiles - null).unique() 如果未处理表示为字符串值的null,请仔细检查。在这种情况下,列表中的内容不是null,而是'null'。您可以调用uniqueProfiles.i

我使用下面的脚本从JSON消息中查询值,并返回具有唯一值和非空值的列表

语法不起作用,空值仍然存在

def uniqueProfiles = jsonpath(r2,'$..[*].estancias[*].huespedes[0].huesped')
def profiles = (uniqueProfiles - null).unique()

如果未处理表示为字符串值的
null
,请仔细检查。在这种情况下,列表中的内容不是
null
,而是
'null'
。您可以调用uniqueProfiles.inspect(),如果您看到的是
'null'
而不是
null
,那么这就是您的问题。示例的第二行按预期删除了所有空值,但无法删除
'null'
字符串。有两种解决方案:

  • 避免将
    null
    值捕获为字符串
  • 或者执行
    ((uniqueProfiles-null)-“null”).unique()

如果不处理表示为字符串的null,请仔细检查。在这种情况下,列表中的内容不是
null
,而是
'null'
。您可以调用uniqueProfiles.inspect(),如果您看到的是
'null'
而不是
null
,那么这就是您的问题。示例的第二行按预期删除了所有
null
值,但无法删除
'null'
字符串。谢谢,这是一个很好的答案。你能把它写下来作为我的答案吗@s