使用Mule ESB解析MySQL存储过程ResultSet

时间:2016-02-19 22:20:09

标签: java mysql json mule anypoint-studio

我正在使用Mule并且无法将MySQL存储过程的结果转换为JSON。

如果我将结果留出来,它“有效” - 但它在数据中包含了一些不必要的口香糖。 MySQL返回两个结果 - 一个是我想要的实际数据的结果集,一个是/** * Thrown when change detector executes on dehydrated view. * * This error indicates a bug in the framework. * * This is an internal Angular error. */ export class DehydratedException extends BaseException { constructor(details: string) { super(`Attempt to use a dehydrated detector: ${details}`); } } (它总是为零,它总是返回单个select语句的结果)。它们作为Hashmap放在有效载荷中,表示如下:

UpdateCount

当我尝试将上述内容转换为JSON时,它可以正常工作,但它会打印出所有内容。

我想要做的只是在{resultSet1=[{Rounds=15, Division=1, Season=2012, Type=League, Split=null, Name=DIVISION 1, ID=1}, {Rounds=14, Division=2, Season=2012, Type=League, Split=null, Name=DIVISION 2, ID=2}, {Rounds=14, Division=3, Season=2012, Type=League, Split=null, Name=DIVISION 3, ID=3}], updateCount1=0} 之后得到方括号的内容。我尝试在我的对象到JSON控件之前做一个“设置有效负载”,但是不能让它工作。

resultSet1提供#[payload[0]]NullPayload提供,我不知道还有什么可以尝试。

2 个答案:

答案 0 :(得分:1)

您是否尝试过#[payload['resultSet1'][0]]#[payload['resultSet1'].get(0)]

答案 1 :(得分:0)

我发现工作的答案是Anirban指向How to Extract the value of resultSet returned from JDBC response (Via MEL) Mule ESB的评论的组合,并通过连接周围的东西来重写有效负载。

我在Object to JSON转换器之前将有效负载设置为payload['resultSet1'],然后在转换器之后将有效负载重新设置为#['{\"competitions\": ' + payload +'}']