我正在尝试访问传入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中的列表。