我需要将变量(输出“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 无法直接将对象转换为字符串。您必须使用 write() 函数,该函数将其输入格式化或打印为所需输出格式的字符串。
这是因为内部对象不表示为 JSON 或 XML。没有与字符串等价的东西。