transformation - 如何将 Dataweave 示例数据格式化为 LinkedHashMap
问题描述
我有这个LinkedHashMap
和LinkedHashMap$Entry
有效载荷
{box=
{
0={plate=false, id=8269999, knife=1},
1={plate=true, id=8260118, knife=1}
}
}
我想将此结构应用于我的 Dataweave 转换示例数据。我想出了这个,但在运行时转换失败,而预览显示它是一个正确的转换......
%dw 1.0
%output application/java
---
[{
"box": {
"0": {
"plate": {
plate: false
} as :object {
class : "java.util.Object"
},
"id": {
id: 8269999
} as :object {
class : "java.util.Object"
},
"knife": {
knife: 1
} as :object {
class : "java.util.Object"
}
} as :object {
class : "java.util.Object"
},
"1": {
"plate": {
plate: true
} as :object {
class : "java.util.Object"
},
"id": {
id: 8260118
} as :object {
class : "java.util.Object"
},
"knife": {
knife: 1
} as :object {
class : "java.util.Object"
}
} as :object {
class : "java.util.Object"
}
} as :object {
class : "java.util.Object"
}
} as :object {
class : "java.util.LinkedHashMap"
}]
解决方案
java.util.Object 没有像knife 或plate 这样的字段,因此对其进行强制转换没有任何意义。您想要的只是删除脚本中的所有“as :object ...”,DataWeave 将根据需要返回地图。
而且通常地图中的条目(即 LinkedHashMap$Entry)根本不被直接引用。它们是特定地图实现的实现细节。
只考虑 Map 接口,而不是像 LinkedHashMap 这样的具体实现。
推荐阅读
- eclipse - 我创建了一个插件项目,但是没有带有弹出菜单模板的插件,如何获取带有弹出菜单模板的插件
- swift - Realm Swift:禁用反向链接查询,但在反向关系中发现反向链接
- mysql - 加入三个计数查询并将结果放入三列
- assembly - 定义和调用接收不同数据类型的宏时指令操作数大小错误。使用 masm32
- java - 如何将具有数据列的pdf文件转换为可以使用java访问的数据库
- php - 未设置 PHP Curl 标头
- django - Django Rest Framework 的测试用例;努力得到正确的回应
- bootstrap-4 - Bootstrap 将图像放在中心文本上方
- javascript - 尝试使用上下文执行传递给组件的函数
- android - 如何一次处理多个异步调用?