java - 如何访问嵌套在 Java 中 Apache Camel 的 ${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 中的列表之类的值。
推荐阅读
- html - 反应中的网站图标/标签通知
- javascript - 我如何抓取数据
- html - html标签“tel”属性在android chrome中不起作用
- css - 从浏览器中提取光标图像(抓取、抓取等)
- mysql - 如何将对象数组转换为表格?
- sip - 在 Linphone 4.x 中发送邀请的问题
- elasticsearch - Painless (Elasticsearch) 不能使用关键字 - 脚本错误
- java - PyCharm 在 macOS 上使用非常松散的安全性
- dialogflow-es - Dialogflow 与 Viber 的集成不适用于 Rich Media 类型的消息
- reactjs - 传递参数时,onClick 事件会无限触发