1
muchenlou OP VX : muchenlou
|
2
JasonEWNL 2022-10-18 11:26:00 +08:00 1
语义上是「订单列表里,材料类型为艺术的订单个数不为零」,后一句类似「订单确保有上传的图片」,前面几条比较容易就是简单的比较。
要说不容易理解,可能主要在于 DataWeave 的 lambda ( https://docs.mulesoft.com/dataweave/2.4/dataweave-functions-lambdas#use-anonymous-parameters-in-a-lambda )和 selector ( https://docs.mulesoft.com/dataweave/2.4/dataweave-selectors#multi_value_selector ),可以看下文档。 |
3
muchenlou OP @JasonEWNL 谢谢大佬,可能我是没描述清楚,我主要是想翻译成 Java 的写法,可以给我提供代码那种。
https://cdn.jsdelivr.net/gh/muchenlou/imgBeds@main/img/image-20221018113051567.png |
4
muchenlou OP @JasonEWNL 之前 mulesoft 官网的 DataWeave map 相关的和 MEL 的说明,我基本都看查完了,就是没有找出对应的说明。
|
5
JasonEWNL 2022-10-18 14:06:06 +08:00
虽然缺少样例数据不过后俩基本思路如下,必要时可构造相应类型。(缩进用下划线表示以便查看。)
```java List<OrderAttribute> orderAttributeList = orderData.get("order_lineitem_components") ____.filter( ________order -> order.get("material_type_id").toString() ____________.equals(materialType.get("ART").get("id").toString()) ____) ____.map(order -> order.get("custom_attributes")); boolean isEmpty = orderAttributeList.isEmpty(); List<String> artTypeList = orderAttributeList ____.map(orderAttribute -> orderAttribute.get("art_type").toString()); boolean containsImage = artTypeList.contains("image_upload"); ``` |
6
muchenlou OP @JasonEWNL 嗯嗯,差不多,我是这个样子,我翻译过来就是$ 是当前对象的缩写,$.a 相当于当前对象的成员属性,然后 [? ] 应该是判断里面的布尔值,如果是的话,再进行后面的运算了,如果不是的话,就不继续往后了。
![image-20221018151842791]( https://cdn.jsdelivr.net/gh/muchenlou/imgBeds@main/img/image-20221018151842791.png) |