2017-04-24 60 views
1

com.mulesoft.weave.model.structure.QualifiedName我有一个数据库查询,像这样返回数据:Dataweave:获取,而不是字符串

"LABEL","CONTAINER_ID","STATUS" 
"14.JW24","1006063116","F" 
"14.JW25","1006063116","F" 
"1.JW2M","9999997","R" 
"8.282","9999999","R" 
"4.135","9999999","F" 
"6.43","9999999","F" 
"11.12","9999999","R" 
"14.JW12","1006063073","R" 
"14.JW13","1006063073","R" 
"14.JW10","1006063068","F" 

我使用Dataweave创建不同的列表具有“F”状态的container_id值。喜欢的东西:

["1006063116", "9999999", "1006063068"] 

这里是我的dataweave脚本:

%dw 1.0 
%output application/java 
--- 
payload filter $.STATUS == "F" groupBy $.CONTAINER_ID pluck $$ 

,我得到com.mulesoft.weave.model.structure.QualifiedName对象的列表,而不是名单这工作,除了罚款字符串。

我该如何修改dataweave脚本才能获取字符串,或者,如何从QualifiedName对象获取字符串值?我试过在对象上调用toString()和getName()。前者不给我需要的价值,后者不起作用。

回答

0

只投,结果元素串这样的:

%dw 1.0 
%output application/java 
--- 
payload filter $.STATUS == "F" groupBy $.CONTAINER_ID pluck $$ as :string 

的重要组成部分,是as :string

替代解决方案:您可以使用distinctBy关键字来实现类似的结果,并摆脱GROUPBY +勇气的:

%dw 1.0 
%output application/java 
--- 
(payload filter $.status == "F").container_id distinctBy $ 
+0

谢谢!我想添加为:字符串,但由于某种原因,我认为我需要首先将表达式包装到parens中,这导致无效的语法。 – weissj

相关问题