我有一个JSON格式的入站有效载荷。我使用" JSON转换为Object"转换器,然后将数据传递给组件(作为JsonData对象。)然后,我的组件返回相同的JsonData对象并进行修改。我尝试将Amazon S3组件用作流程的下一步,并尝试将存储桶名称和其他值绑定到JsonData对象中可访问的元素。 以下是存储桶名称的表达式:
#[json: TopKey/BucketName]
根据经验,这适用于JSON。
然而,当我运行这个时,我得到的是:
消息:无法调用getObjectContent。消息有效内容的类型为:JsonData 代码:MULE_ERROR-29999
有没有办法可以使用我的JsonData对象并从中提取信息,或者在将其传递给Amazon S3组件之前是否必须将其转换回其他内容?
谢谢,
答案 0 :(得分:1)
在尝试了一下我的表达之后,我发现我可以像在Java组件中那样访问元素:
#[payload.get("TopKey").get("BucketName").getTextValue()]
我有我的BucketName!
答案 1 :(得分:0)
从表达式中删除空格:#[json:TopKey/BucketName]
答案 2 :(得分:0)
您可以设置"返回班级" to" JSON to Object"中的java.util.Map处理器,然后您可以通过#[payload.TopKey.BucketName]
访问该值