我正在将JSON数据传递给Mule,如果我回应Payload我得到了这个:
{"AddJob":{"JobNumber":12345,"Version":1}}
我想使用JDBC查询将这些值插入表中。我该怎么替换“????”用下面来引用那些JSON参数?我需要先将它转换为对象吗?
<jdbc:query key="insertQuery" value="INSERT INTO [dbo].[Jobs] ([[JOB_NUMBER], [VERSION]) VALUES (???? , ????)"/>
答案 0 :(得分:2)
在3.3.0中引入了MEL,推荐的方法是将JSON有效负载转换为Map:
<json:json-to-object-transformer returnClass="java.util.HashMap"/>
然后在查询中使用MEL表达式:
<jdbc:query key="insertQuery"
value="INSERT INTO [dbo].[Jobs] ([[JOB_NUMBER], [VERSION]) VALUES (#[message.payload.AddJob.JobNumber], #[message.payload.AddJob.Version])"/>
答案 1 :(得分:1)
对于此用例,您应该考虑使用mule提供的Json expression evaluator。
您的jdbc查询将如下所示
<jdbc:query key="insertQuery" value="INSERT INTO [dbo].[Jobs] ([[JOB_NUMBER], [VERSION]) VALUES (#[json: AddJob/JobNumber] , #[json: AddJob/Version])"/>