javagson解析:不同项目中的Bean结构
假设我有4个项目
项目a, b项目, 项目c, 项目通用性
project-common
在所有其他项目中设置为依赖项(maven)
现在每个项目读取单独的json文件
project-a、project-b读取以下json
{ "jsonLevel1" : {
"jsonLevel2" : {
"key1" : "value1",
"key2" : "value2"
}
}
项目c内容如下:
{ "jsonLevel1" : {
"jsonLevel2" : {
"key1" : "value1",
"key2" :"value2",
"key3" : "value3",
"jsonLevel3" : {
"string1" : "value11",
"string2" : "value22"
}
}
}
我希望在project-common中有pojo类JsonLevel1、JsonLevel2和project-c中的JavaLevel3。但是,project-common不识别JavaLevel3类(因为project-c不是project-common的依赖项)
我该怎么做
# 1 楼答案
如果我理解正确的话,你在你的公共项目课程中:
JSONLevel 1。爪哇
JsonLevel2。爪哇
在JsonLevel2类中,因为这个项目中没有JsonLevel3类,所以这是您的问题
你可以这么做。在类JsonLevel2中,可以插入映射,而不是JsonLevel3类:
这样,您的项目中就没有问题了,您可以解析json
在project-c中,存在类JsonLevel3,在JsonLevel对象中反序列化json之后,您可以获得该映射并在JsonLevel3中反序列化它
因此,如果您想在project-c中阅读此json:
你可以做:
当然,JsonLevel类等于
编辑
我以为你最后的json有你问题描述的结构。这就是为什么我对JsonLevel3使用了
Map<String,String>
如果JsonLevel3不是您的最后一级,您可以使用
Map<String,String>
而不是使用Map<String,String>
例如,如果要发送的json为:
JsonLevel2将是:
通过这种方式,映射的值可以是一切(不像以前那样强制为字符串)。因此,在您将json反序列化之后,您可以执行与之前相同的操作,无论JSONLevel 3的内容是什么: