Используйте Mule ESB для разбора наборов результатов хранимых процедур MySQL

Я использую 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, но не могу заставить его работать.

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


person Mr Angry    schedule 19.02.2016    source источник
comment
Вы можете найти ответ здесь: - stackoverflow.com/questions/28526065/   -  person Anirban Sen Chowdhary    schedule 20.02.2016
comment
Я видел это раньше и пробовал, так я и добрался до вышеизложенного. После повторного прохождения шагов я понимаю, что мне просто не нужен [0], и именно здесь этот ответ смутил меня. Сказав это, он все еще выдает строку, окруженную квадратными скобками, когда я конвертирую в JSON, и я не думаю (?), что это допустимый JSON   -  person Mr Angry    schedule 20.02.2016


Ответы (2)


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

person Alex Fernandez    schedule 20.02.2016
comment
Я возвращаю список соревнований, если я это сделаю, я просто верну первое соревнование. - person Mr Angry; 20.02.2016

Ответ, который я нашел работающим, представлял собой комбинацию комментария от Anirban, указывающего на Как извлечь значение из набора результатов, возвращенное ответом JDBC (через MEL) Mule ESB, и переписать полезную нагрузку, объединив ее вокруг.

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

person Mr Angry    schedule 20.02.2016