2016-02-19 2 views
1

Я использую Mule и не могу получить результаты из хранимой процедуры MySQL в JSON.Использовать Mule ESB для анализа MySQL Хранимой процедуры ResultSets

Это «работает», если я оставлю результаты, когда они выходят, но в них содержится ненужная gumf. 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, но не могу заставить его работать.

#[payload[0]] дает NullPayload, равно как и #[payload[0][resultSet1]], и я не уверен, что еще попробовать.

+0

Вы можете найти ответ здесь: - http://stackoverflow.com/questions/ 28526065/how-to-extract-the-value-of-resultset-return-from-jdbc-response-via-mel-mule –

+0

Я видел это раньше и проверял, как я добрался до вышесказанного. Повторяя шаги снова, я понимаю, что мне просто не нужен [0], и именно там этот ответ меня смутил. Сказав это, он все еще выплевывает строку, окруженную квадратными скобками, когда я конвертирую в JSON, и я не думаю (?) Это действительно JSON –

ответ

1

Вы пробовали #[payload['resultSet1'][0]] или #[payload['resultSet1'].get(0)]

+0

Я возвращаю список соревнований, если я делаю это, я просто получаю первый конкурс назад. –

0

Ответ, который я нашел, чтобы работать было сочетание комментария от Anirban указывая на How to Extract the value of resultSet returned from JDBC response (Via MEL) Mule ESB и переписывания полезной нагрузки путем конкатенации вещи вокруг него.

Я установил полезную нагрузку payload['resultSet1'] до объекта в JSON трансформатор, то после трансформатора я заново установить полезную нагрузку на #['{\"competitions\": ' + payload +'}']