如何在mule 4中将数据从对象转换为字符串?

如何在mule 4中将数据从对象转换为字符串?,mule,converters,Mule,Converters,每当我需要在控制台上使用mule 3[message.payloadAs(java.lang.string)]中的语法记录有效负载时,我都会将有效负载转换为字符串,有时还使用对象到字符串转换器或对象到数组转换器 但是在Mule4中,我没有看到任何与Mule3相同的转换器,[message.payloadAs(java.lang.String)]也不工作 请帮助我在mule 4中有没有组件或concept的新语法 输入 [ { "firstName": "R

每当我需要在控制台上使用mule 3[message.payloadAs(java.lang.string)]中的语法记录有效负载时,我都会将有效负载转换为字符串,有时还使用对象到字符串转换器或对象到数组转换器

但是在Mule4中,我没有看到任何与Mule3相同的转换器,[message.payloadAs(java.lang.String)]也不工作

请帮助我在mule 4中有没有组件或concept的新语法

输入

[
        {
            "firstName": "Ram",
            "lastName": "Ram1",
            "address": [
                {
                    "street": "a",
                    "city": "b",
                    "state": "c"
                },
                {
                    "street": "a1",
                    "city": "b1",
                    "state": "c1"
                }
            ]
        }
批处理图像

代码

        <batch:job jobName="Batch_ProcessingBatch_Job" doc:id="2582eccb-720f-499f-99fe-424cab3c9a33" >
            <batch:process-records >
                <batch:step name="Batch_Step1" doc:id="cb045f6b-edd3-426f-8f28-0d20b301fb6d" >
                    <logger level="INFO" doc:name="Logger" doc:id="2491184f-e8d7-47b7-bef0-29bafd43247f" message="In Batch_step1........... #[payload]"/>
                    <batch:aggregator doc:name="Batch Aggregator" doc:id="aa9c1b60-395f-4376-804d-bced200dfb43" size="2">
                        <set-payload value='#[write(payload, "application/json")]' doc:name="Set Payload" doc:id="9d4b27ee-5692-4a99-a93e-bd7c694f398d" />
                        <ee:transform doc:name="Transform Message" doc:id="06064422-1352-4ff9-8817-3e87eb1f4264" >
                            <ee:message >
                                <ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
payload map(item,index) -> {
    name: item.firstName,
    surname: item.lastName 
}]]></ee:set-payload>
                            </ee:message>
                        </ee:transform>
                        <logger level="INFO" doc:name="Logger" doc:id="c955490e-fab1-436e-8265-f706a577c9d2" message="In Batch_step1 Aggrigator........... #[payload]" />
                    </batch:aggregator>
                </batch:step>
            </batch:process-records>
            <batch:on-complete >
                <logger level="INFO" doc:name="Logger" doc:id="a3923c90-557b-4955-9c40-afd748719abd" message="#['#####It is oncomplete result####': write(payload, &quot;application/json&quot;)]"/>
            </batch:on-complete>
        </batch:job>

{
名称:item.firstName,
姓氏:item.lastName
}]]>
获取错误

Message               : "You called the function 'map' with these arguments: 
  1: String ("[\n  \"{\\n  \\\"firstName\\\": \\\"Ram\\\",\\n  \\\"lastName\\\": \\\"Ram1\...)
  2: Function ((item:Any, index:Any) -> ???)

But it expects arguments of these types:
  1: Array
  2: Function


4| payload map(item,index) -> {
 |  ...
7| }

Trace:
  at map (line: 4, column: 1)
  at main (line: 4, column: 9)" evaluating expression: "%dw 2.0
output application/json
---
payload map(item,index) -> {
    name: item.firstName,
    surname: item.lastName 
}".
Error type            : MULE:EXPRESSION
Element               : Batch_ProcessingFlow/processors/0/route/0/route/0/aggregator/processors/1 @ training-1:Batch Processing.xml:27 (Transform Message)
Element XML           : <ee:transform doc:name="Transform Message" doc:id="06064422-1352-4ff9-8817-3e87eb1f4264">
<ee:message>
<ee:set-payload>%dw 2.0
output application/json
---
payload map(item,index) -> {
    name: item.firstName,
    surname: item.lastName 
}</ee:set-payload>
</ee:message>
</ee:transform>

  (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
********************************************************************************
消息:“您使用以下参数调用了函数‘map’:
1:字符串(“[\n\”{\\n\\\“firstName\\”:\\\“Ram\\”,\\n\\\“lastName\\”:\\\“Ram1\…)
2:功能((项目:任意,索引:任意)->??)
但它需要以下类型的参数:
1:数组
2:功能
4 |有效载荷图(项目、索引)->{
|  ...
7| }
跟踪:
在地图上(行:4,列:1)
在main(第4行,第9列)中,“求值表达式:”%dw 2.0
输出应用程序/json
---
有效负载图(项目、索引)->{
名称:item.firstName,
姓氏:item.lastName
}".
错误类型:MULE:EXPRESSION
元素:Batch_ProcessingFlow/processors/0/route/0/route/0/aggregator/processors/1@training-1:Batch Processing.xml:27(转换消息)
元素XML:
%DW2.0
输出应用程序/json
---
有效负载图(项目、索引)->{
名称:item.firstName,
姓氏:item.lastName
}
(为所有内容设置调试级别日志或“-Dmule.verbose.exceptions=true”)
********************************************************************************

快速谷歌搜索后,新方法是使用
#[message.payload as String]

快速谷歌搜索后,新方法是使用
#[message.payload as String]
如中所示。

您可以为记录器使用
有效负载。^raw
语法。它是在mule 4中引入的,可以处理需要字符串转换的情况。通常与记录器中的
输出文本/普通
格式很好地匹配

参考:


注意,记录整个有效载荷(可能包含PII等)从来都不是一个好主意除了在批处理过程结束时需要记录的报告之外,可能还有一个例外…

您可以使用
有效负载。^raw
语法用于记录器。它是在mule 4中引入的,可以处理需要字符串转换的情况。通常与
输出t匹配良好记录器中的ext/plain
格式

参考:


请注意,记录整个有效负载(可能包含PII等)从来都不是一个好主意,但可能有一个例外,即您正在生成一份报告,需要在批处理过程结束时记录该报告,这里可能就是这种情况…

根据新问题更新答案。根据新问题更新答案。