1

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

如果我在结果出来时留下结果,它“有效”——但它在数据中包含了一些不必要的口香糖。MySQL 正在返回两个结果——一个是我想要的实际数据的结果集,另一个是一个UpdateCount(它总是为零,它总是返回单个 select 语句的结果)。这些作为 Hashmap 被放置在有效负载中,如下所示:

{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。我已经尝试在我的 Object-to-JSON 控件之前执行“Set Payload”,但不能完全让它工作。

#[payload[0]]给出一个NullPayload, 一样#[payload[0][resultSet1]],我不知道还有什么可以尝试的。

4

2 回答 2

1

你试过#[payload['resultSet1'][0]]#[payload['resultSet1'].get(0)]

于 2016-02-20T00:55:54.740 回答
0

我发现有效的答案是 Anirban 的评论指向如何提取从 JDBC 响应(通过 MEL)Mule ESB 返回的结果集的值和通过连接周围的东西来重写有效负载的组合。

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

于 2016-02-20T12:00:01.057 回答