我有下面的json,我试图找出定制的java类可以代表哪种结构。
{
"04000550":{
"vr":"SQ",
"Value":[
{
"00100010":{
"vr":"PN",
"Value":[
{
"Alphabetic":"TCGA-17-Z021"
}
]
}
}
]
},
"04000562":{
"vr":"DT",
"Value":[
"20220103125232.022"
]
},
"04000563":{
"vr":"LO",
"Value":[
"dcm4chee-arc"
]
},
"04000564":{
"vr":"LO"
},
"04000565":{
"vr":"CS",
"Value":[
"CORRECT"
]
}
}
我尝试了Map<String, Tag>
,自定义类Tag
具有vr and Value
属性,问题是Value
可以是list of one String
,也可以是Tag
,这取决于vr
属性(如果vr =“SQ”,则值将是Tag
类型)
我尝试将此jsonMap到一个适当的java数据结构,以便在primefaces datatable
中使用它来表示表中的这些数据,以便用户编辑它们。如果我将此json表示为Map<String, Tag>
,并且Tag具有String vr, JsonNode Value
,我将无法允许在primefaces datatable
中编辑此值,因为它需要将Value
作为自定义对象,该对象具有允许对其进行setter和getter的属性(这是jsf或primefaces的工作方式),那么我如何Map这个json呢?
这是我的第一张脸。
1条答案
按热度按时间abithluo1#
您可以使用Custom Deserializer for Jackson,然后反序列化JSON,如下所示:
我试着做一个deserializer。它很脏,但正在工作。
POJO类将如下所示:
dataTable将如下所示: