hashmap - 如何在 Mule 4 的转换中的 DataWeave2 中创建 HashMap?
问题描述
我需要在 Mule 4 的转换消息中创建一个 HashMap 以发送到服务。
我试图做这样的事情:
%dw 2.0
import HasMap from java!java::util::HashMap
output application/java
---
HasMap ( <'data': write(payload, "application/json")>,
<'attribute1': 'att1'>,
<'attribute2': 'att2'>,
<'attribute3': 'att3'> )
因为当我使用 java 库成功创建了一个字符串时,我认为我可以对 HashMap 做同样的事情,但它仍然无法正常工作:
%dw 2.0
import valueOf from java!java::lang::String
output application/java
---
valueOf({
data: write(payload, "application/json"),
atrribute1: 'att1',
atrribute2: 'att2',
atrribute3: 'att3' })
一开始,我试着像这样映射:
%dw 2.0
output application/java
---
{
"data": write(payload, "application/json"),
"attribute1": "att1",
"attribute2": "att2",
"attribute3": "att3"
}
但问题是该服务收到了这样的信息:
'\xac\xed\x00\x05sr\x00\x17java.util.LinkedHashMap4\xc0N\\x10l\xc0\xfb\x02\x00\x01Z\x00\x0baccessOrderxr\x00\x11java.util.HashMap\x05\x07\xda \xc1\xc3\x16`\xd1\x03\x00\x02F\x00\nloadFI\x00\tthresholdxp?@\x00\x00\x00\x00\x00\x0cw\x08\x00\x00\x00\x10\x00\ x00\x00\x06t\x00\x04datat\x06\x19{\n “数据”:“{}”,“属性1”:“att1”,.....'
关于如何创建普通哈希图的任何想法?
我希望收到:
'数据':'{....}','attribute1':'att1','attribute2':'att2','attribute3':'att3'
解决方案
因此,如果您希望输出是“java.util.HashMap”实例,那么您需要使用
%dw 2.0
output application/java
---
{
"data": write(payload, "application/json"),
"attribute1": "att1",
"attribute2": "att2",
"attribute3": "att3"
} as Object {class : "java.util.HashMap"}
尽管我认为这不是您真正想要的,因为 HashMap 不是您想要尝试的服务,但很可能您希望全部成为 json 并且通过使用输出 application/json来完成
推荐阅读
- android - TextInputEditText - CompoundDrawable 未居中
- android - 如何从改造中获得原始地址?
- python - 为什么单个正弦信号的傅里叶变换有多个峰值?
- c++ - 在 Windows 7 下无法加载 QtBluetooth 5.12.0
- reactjs - prop `systemConfig` 的类型说明无效;类型检查器函数必须返回 `null` 或 `Error` 但返回一个函数
- java - Spring Data Mongo:标准不按日期过滤
- angular - 如何在导入语法中使用环境变量?
- amazon-web-services - boto3 list_services() 与订单
- java - IntelliJ IDEA:创建没有插件的类型安全构建器的简单方法?
- anychart - 如何将anycharts股票滚动条设置为不移动大小