我是Java RESTful Web服务的新手。我的课程结构如下:
class BaseClass{
String basicInfo;
}
class DataClass extends BaseClass{
String id;
}
class DataList extends BaseClass{
List<DataClass> dataList;
}
当我将DataList类作为Web服务的响应时,我得到以下格式:
{
"basicInfo" : "Mandetory",
"dataList" : [
{
"basicInfo" : "Optional",
"id" : "I_1001"
},
{
"basicInfo" : "Mandetory",
"id" : "I_1002"
}
]
}
但是我想在dataList的每个数据对象中忽略“basicInfo”属性。
离。
{
"basicInfo" : "Mandetory",
"dataList" : [
{
"id" : "I_1001"
},
{
"id" : "I_1002"
}
]
}
有什么方法可以忽略这些属性(使用注释)?
注意:我无法更改类结构。
答案 0 :(得分:1)
@JsonIgnore
以上是您需要的注释。有关此内容的更多变化,您可以浏览以下link。将上述注释添加到您希望在传输对象中忽略的字段中,并且在解析时将忽略它。由于您没有提到您使用哪个库来使用json,我已经使用杰克逊图书馆回答了您的问题。
答案 1 :(得分:1)
您可以在属性@XmlTransient
上使用JAX-B注释basicInfo
。
或者,当JSON-B(JSR 367)可用时(Java EE 8),您可以使用@JsonbTransient
或更好的@JsonbVisibility
属性。