Groovy 未从列表中删除空值
我使用下面的脚本从JSON消息中查询值,并返回具有唯一值和非空值的列表 语法不起作用,空值仍然存在Groovy 未从列表中删除空值,groovy,Groovy,我使用下面的脚本从JSON消息中查询值,并返回具有唯一值和非空值的列表 语法不起作用,空值仍然存在 def uniqueProfiles = jsonpath(r2,'$..[*].estancias[*].huespedes[0].huesped') def profiles = (uniqueProfiles - null).unique() 如果未处理表示为字符串值的null,请仔细检查。在这种情况下,列表中的内容不是null,而是'null'。您可以调用uniqueProfiles.i
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'
。您可以调用uniqueProfiles.inspect(),如果您看到的是'null'
而不是null
,那么这就是您的问题。示例的第二行按预期删除了所有null
值,但无法删除'null'
字符串。谢谢,这是一个很好的答案。你能把它写下来作为我的答案吗@s