Как получить доступ к списку карт, вложенных в $ {body} Apache Camel в Java - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь получить доступ к данным во входящем теле моего входящего Json. Я выполнил демаршалинг с Джексоном и сопоставил его с картой Java с помощью

  `.unmarshal().json(JsonLibrary.Jackson, java.util.Map.class)
`

Мои данные Json выглядят примерно так после демаршального шага выше

`{ "projectId" : 12345,
"title" : “12345 - Plant 1 Processing",
"partners": [{"partnerName": "partnerJV1", "partnerLocation": "JA"},
{"partnerName": "partnerJV2", "partnerLocation": "FL"},
{"partnerName": "partnerJV3", "partnerLocation": "OH"}
]`

Последняя часть может иметь 0-N номеров partnerName, partnerLocation map в Списке партнеров.

Теперь мне нужно вставить эти данные в таблицу SQL с

            .to("sql:classpath:sql/sql_queries.sql")

Мой sql_queries.sql содержит следующий запрос для вставки полей данных в таблицу:

`INSERT INTO MY_TABLE(PID, TITLE, PartnerName1, PartnerLocation1, PartnerName2, PartnerLocation2, PartnerName3, PartnerLocation3) VALUES(:#${body['projectId']}, :#${body['title']}, :#${body['partners[0]']['partnerName']}, :#${body['partners[0]']['partnerLocation']} )'

Я не могу понять синтаксис для последней части, которая является списком карт. Если это должно быть

`:#${body['partners[0]']['partnerName']}`

или что-то еще для того, чтобы я получил это значение.

Любые подсказки помогут, спасибо!

1 Ответ

0 голосов
/ 11 января 2019

В конце концов у меня получилось так:

:#${body['partners'][0]['partnerName']}

но я бы хотел найти способ перебора значений, например списка в Java, если я не знаю его размера для начала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...