【发布时间】:2017-07-04 21:01:49
【问题描述】:
我有一个看起来像这样的嵌套 JSON。
{
"eventId" : "12345",
"eventName" : "carnival",
"object": {
"objectId" : "5678",
"objectFiles" : [{"fileName":"text.txt", "fileContent":"This is a test file."},
{"fileName":"text2.txt", "fileContent":"This is a test2 file."}]
}
}
在这里,我必须获取 eventFiles 键,将 fileContent 值替换为 Base64Encoded String 并将其放回相同的 eventFiles 属性。我知道我可以使用 Jackson Mapper 将其转换为 Map 并逐个迭代它们,直到找到 eventFiles 键,然后获取并替换该值并再次将其存储回来。我尝试使用TypeReference<String, Object> 甚至TypeReference<Map<String, Map<String, Object>>> 将其转换为地图,但这里的问题是嵌套的JSON,最终它将成为地图内部的地图内部的地图,这将变得非常难以处理。
还有其他更简单的方法可以实现吗?任何建议都会非常有帮助。提前致谢。
【问题讨论】:
标签: java json jackson objectmapper jackson-databind