1

我有一个 JSON 格式的入站有效负载。我使用“JSON to Object”转换器将其转换,然后将数据传递给组件(作为 JsonData 对象。)然后我的组件返回相同的 JsonData 对象并进行修改。我正在尝试使用 Amazon S3 组件作为流程中的下一步,并尝试将存储桶名称和其他值与 JsonData 对象中可访问的元素联系起来。例如,这里是存储桶名称的表达式:

#[json: TopKey/BucketName]

根据经验,这适用于 JSON。

但是,当我运行它时,这是我得到的:

消息:调用 getObjectContent 失败。消息有效负载类型:JsonData 代码:MULE_ERROR-29999

  1. 调用 getObjectContent 失败。消息负载的类型为:JsonData (org.mule.api.MessagingException) org.mule.module.s3.processors.GetObjectContentMessageProcessor:177 ( http://www.mulesoft.org/docs/site/current3/apidocs/org/骡/api/MessagingException.html )

有没有办法可以使用我的 JsonData 对象并从中提取信息,或者我是否必须在将其传递给 Amazon S3 组件之前将其转换回其他内容?

谢谢,

4

3 回答 3

1

在尝试更多地使用我的表达式之后,我发现我已经可以像在我的 Java 组件中那样访问元素了:

#[payload.get("TopKey").get("BucketName").getTextValue()]

我有我的 BucketName!

于 2014-03-20T13:33:19.973 回答
0

您可以在“JSON to Object”处理器中将“返回类”设置为 java.util.Map,然后您可以通过 #[payload.TopKey.BucketName] 访问该值

于 2015-04-15T01:40:19.230 回答
0

从表达式中删除空格:#[json:TopKey/BucketName]

于 2014-03-20T13:52:49.943 回答