JSON入站消息到JSON出站消息的数据编织转换表达式

JSON入站消息到JSON出站消息的数据编织转换表达式,json,mule,Json,Mule,我试图在数据编织中进行以下转换 %dw 1.0 %input in application/json %output application/json --- flowVars["xyz"] “xyz”变量本身就是一个JSON对象。我这样做是因为我需要将两个有效负载(有效负载+变量)合并为一个JSON对象,这是第一步 另外,如果我提供有效负载而不是flowVars[“xyz”],那么我会得到相同的错误。有效负载也是相同类型的JSON对象 下面是堆栈跟踪 Root Exception stack

我试图在数据编织中进行以下转换

%dw 1.0
%input in application/json
%output application/json
---
flowVars["xyz"]
“xyz”变量本身就是一个JSON对象。我这样做是因为我需要将两个有效负载(有效负载+变量)合并为一个JSON对象,这是第一步

另外,如果我提供有效负载而不是flowVars[“xyz”],那么我会得到相同的错误。有效负载也是相同类型的JSON对象

下面是堆栈跟踪

Root Exception stack trace:
com.mulesoft.weave.writer.json.JsonInvalidStructureException: JSON can only have one top-level value and that value can only be either an array or an object
at com.mulesoft.weave.writer.json.JsonWriter.value(JsonWriter.scala:44)
at com.mulesoft.weave.writer.json.JsonWriter.value(JsonWriter.scala:36)
at com.mulesoft.weave.engine.Engine.internalExecute(Engine.scala:88)
at com.mulesoft.weave.engine.Engine.execute(Engine.scala:53)
at com.mulesoft.weave.engine.Engine.execute(Engine.scala:181)
at com.mulesoft.weave.mule.WeaveMessageProcessor$WeaveOutputHandler.write(WeaveMessageProcessor.scala:198)
at org.mule.transformer.simple.ObjectToString.createStringFromOutputHandler(ObjectToString.java:102)
at org.mule.transformer.simple.ObjectToString.doTransform(ObjectToString.java:56)
at org.mule.transformer.AbstractTransformer.transform(AbstractTransformer.java:415)
at org.mule.transformer.AbstractTransformer.transform(AbstractTransformer.java:366)
at org.mule.DefaultMuleMessage.transformMessage(DefaultMuleMessage.java:1606)
at org.mule.DefaultMuleMessage.applyAllTransformers(DefaultMuleMessage.java:1509)
at org.mule.DefaultMuleMessage.applyTransformers(DefaultMuleMessage.java:1487)
at org.mule.DefaultMuleMessage.applyTransformers(DefaultMuleMessage.java:1479)
at org.mule.transformer.AbstractTransformer.process(AbstractTransformer.java:114)
at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24)
at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107)
at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44)
at org.mule.processor.BlockingProcessorExecutor.executeNext(BlockingProcessorExecutor.java:94)
at org.mule.processor.BlockingProcessorExecutor.execute(BlockingProcessorExecutor.java:56)
at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24)
at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44)
at org.mule.processor.BlockingProcessorExecutor.executeNext(BlockingProcessorExecutor.java:94)
at org.mule.processor.BlockingProcessorExecutor.execute(BlockingProcessorExecutor.java:56)
at org.mule.processor.AsyncInterceptingMessageProcessor.process(AsyncInterceptingMessageProcessor.java:102)
at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24)
at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107)
at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44)
at org.mule.processor.BlockingProcessorExecutor.executeNext(BlockingProcessorExecutor.java:94)
at org.mule.processor.BlockingProcessorExecutor.execute(BlockingProcessorExecutor.java:56)
at org.mule.construct.DynamicPipelineMessageProcessor.process(DynamicPipelineMessageProcessor.java:55)
at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24)
at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107)
at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44)
at org.mule.processor.BlockingProcessorExecutor.executeNext(BlockingProcessorExecutor.java:85)
at org.mule.processor.BlockingProcessorExecutor.execute(BlockingProcessorExecutor.java:56)
at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24)
at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44)
at org.mule.processor.BlockingProcessorExecutor.executeNext(BlockingProcessorExecutor.java:94)
at org.mule.processor.BlockingProcessorExecutor.execute(BlockingProcessorExecutor.java:56)
at org.mule.interceptor.AbstractEnvelopeInterceptor.processBlocking(AbstractEnvelopeInterceptor.java:58)
at org.mule.processor.AbstractRequestResponseMessageProcessor.process(AbstractRequestResponseMessageProcessor.java:47)
at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24)
at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107)
at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44)
at org.mule.processor.BlockingProcessorExecutor.executeNext(BlockingProcessorExecutor.java:94)
at org.mule.processor.BlockingProcessorExecutor.execute(Blocking...


如果需要更多信息,请告诉我

您需要将flowVar中的mime类型设置为
application/json

如果没有,您也需要为负载设置它。

flowVar“xyz”的内容是什么?根据错误“JSON只能有一个顶级值,并且该值只能是数组或对象”,flowVars[“xyz”]的值可能无效。@Shoki“xyz”变量本身就是JSON对象。我也包括在问题中。我提供了更多关于场景的清晰信息,我看到它已经存在于数据编织组件中。当我给出有效载荷而不是FlowVar时,我得到了相同的问题。