我正在尝试访问传入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个partnerName,partnerLocation映射。
现在我必须使用
将此数据插入到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']}`
或其他一些东西,以便我获得该价值。
任何提示都会有所帮助,谢谢!
答案 0 :(得分:0)
最终对我有用的是:
:#${body['partners'][0]['partnerName']}
但是我很想找到一种方法来迭代Java中的列表之类的值,如果我不知道它的大小。