目前我在我的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”:true。
{
"field1": {
"a": "123",
"b": "456",
"c": 789,
"valid": true
},
"field2": {
"a": "123",
"b": "456",
"c": 789,
"valid": true
},
"valid": true
}
我无法将方法修饰符更改为private或protected,因为其他包中的类需要调用验证方法。
如何从我的JSON对象中消除额外字段“valid”:true?
编辑:我正在使用Spring Framework进行请求处理和响应处理。它在幕后使用杰克逊。