如何访问Java中ApacheCamel的${body}中嵌套的映射列表



我正在尝试访问传入Json的传入{body}中的数据我已经用Jackson进行了解组,并用将其映射到Java Map

`.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个合作伙伴名称、合作伙伴位置映射。

现在我不得不用将这些数据插入到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']}`

或者其他什么东西,让我得到那个价值。

任何提示都会有所帮助,谢谢!

最终对我起作用的是:

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

但是,如果我一开始不知道值的大小,我很想找到一种迭代值的方法,比如Java中的列表。

相关内容

最新更新