MuleSoft-Dataweave 将变量(“输出应用程序/json”)转换为字符串错误

问题描述 投票:0回答:1

我需要将变量(输出“application/json”)转换为字符串 在 Mulesoft 的 dataweave 中

它适用于

 jsonpayload: write(vars.originalPayload, "application/json")

但失败了

jsonpayload: vars.originalPayload as String 

错误堆栈跟踪,为什么 vars.originalPayload as String 不起作用?

有什么想法吗?

错误堆栈跟踪

""org.mule.weave.v2.exception.UnsupportedTypeCoercionException: Cannot coerce Object { encoding: UTF-8, mediaType: application/json; charset=UTF-8, mimeType: application/json, raw: org.mule.weave.v2.el.SeekableCursorStream@44007183, contentLength: 4002 } to String

8| jsonpayload: vars.originalPayload as String,
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Trace:
  at anonymous::main (line: 8, column: 14)

" evaluating expression: "//%dw 2.0
//output application/java
//---
{
givenname: vars.firstname,
familyname:vars.lastname,
employeeid: vars.employeeId,
jsonpayload: vars.originalPayload as String,
//jsonpayload: write(vars.originalPayload, "application/json")
}"."
dataweave mulesoft
1个回答
0
投票

这就是预期的结果。 DataWeave 无法直接将对象转换为字符串。您必须使用 write() 函数,该函数将其输入格式化或打印为所需输出格式的字符串。

这是因为内部对象不表示为 JSON 或 XML。没有与字符串等价的东西。

© www.soinside.com 2019 - 2024. All rights reserved.