Java 获取并更新嵌套的JSON属性值
我有一个嵌套的JSON,看起来像这样Java 获取并更新嵌套的JSON属性值,java,json,jackson,objectmapper,jackson-databind,Java,Json,Jackson,Objectmapper,Jackson Databind,我有一个嵌套的JSON,看起来像这样 { "eventId" : "12345", "eventName" : "carnival", "object": { "objectId" : "5678", "objectFiles" : [{"fileName":"text.txt", "fileContent":"This is a test file."}, {"fileName":"text2.txt", "fileContent":"T
{
"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键,用Base64Encoded字符串替换fileContent值,并将其放回相同的eventFiles属性。我知道我可以使用Jackson Mapper将其转换为Map并逐个迭代,直到找到eventFiles键,然后获取并替换该值并再次存储。我尝试使用TypeReference
甚至TypeReference
将其转换为一个映射,但这里的问题是嵌套的JSON,最终它将成为映射内部的映射,而映射内部的映射将变得非常复杂
有没有其他更简单的方法来实现这一点?任何建议都会很有帮助。提前感谢。如果您的Json有固定格式,您可以使用Gson()并将其转换为表示Json的对象 它看起来像这样:
public class CustomEvent {
String eventId;
String eventName;
CustomObject object;
}
public class CustomObject {
String objectId;
List<CustomFile> objectFiles;
}
public class CustomFile {
String fileName;
String fileContent;
}
Gson gson = new Gson();
CustomEvent event = gson.fromJson(yourString, Event.class)
// Do whatever you want with the event
String modifiedJson = gson.toJson(event);
希望有帮助谢谢你的回答。我不会有固定的格式。它一直在变化。所以我必须完成这个任务。