目前,我在Web服务器上创建了一个对象,然后它将作为JSON对象返回给我的客户端。
public class JsonClass{
@SerializedName("field1")
private myObject field1;
public myObject getField1() {
return field1;
}
public void setField1(myObject value) {
this.field1 = value;
}
@SerializedName("field2")
private myObject field2;
public myObject getField2() {
return field2;
}
public void setField2(myObject value) {
this.field2= value;
}
public final boolean isValid() throws InvalidObjectException {
if (field1 != null) field1 .isValid();
if (field2 != null) field2 .isValid();
return true;
}
@Override
public int hashCode() {
int result = 1;
result = 31 * result + (field1 == null ? 0 : field1 .hashCode());
result = 31 * result + (field2 == null ? 0 : field2 .hashCode());
return result;
}
}
我希望JSON对象是
{
"field1": {
"a": "123",
"b": "456",
"c": 789
},
"field2": {
"a": "123",
"b": "456",
"c": 789
}
}
然而,因为我的.isValid()方法是公共的,所以响应的JSON对象都有一个额外的属性“valid”:真的。
{
"field1": {
"a": "123",
"b": "456",
"c": 789,
"valid": true
},
"field2": {
"a": "123",
"b": "456",
"c": 789,
"valid": true
},
"valid": true
}
我不能将方法修饰符改为private或protected,因为其他包中的类需要调用验证方法。
如何消除额外的字段“valid”:JSON对象的true?
编辑:我正在使用Spring Framework进行请求处理和响应处理。Jackson在幕后。
1条答案
按热度按时间suzh9iv81#
您可以将@JsonIgnore注解添加到您的公共方法中,该字段将从您的响应中删除。