我正在使用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
提供,我不知道还有什么可以尝试。
答案 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 +'}']