Java Jackson-无限循环反序列化

Java Jackson-无限循环反序列化,java,json,jackson,Java,Json,Jackson,我正在使用jackson反序列化以下json内容: { "contacts": [ { "localId": 45, "serverId": 0, "numbers": [ "1111", "2222" ] }, { "localId": 11, "serverId": 0, "numbers": [ "5555" ]

我正在使用jackson反序列化以下json内容:

{
 "contacts": [
    {
      "localId": 45,
      "serverId": 0,
      "numbers": [
        "1111",
        "2222"
      ]
    },
    {
      "localId": 11,
      "serverId": 0,
      "numbers": [
        "5555"
      ]
    }
   ]
}
我的Java类是

public class Contacts implements Serializable {

    private List<Contact> contacts;

    ... public Getter and Setter here

}
编辑:序列化程序

public class ContactSerializer extends StdSerializer<Contact> {

    protected ContactSerializer() {
        super(Contact.class);
    }

    @RequiresApi(api = Build.VERSION_CODES.N)
    @Override
    public void serialize(Contact value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException {

        jgen.writeStartObject();

        jgen.writeNumberField(Contact.COLUMN_LOCAL_ID, value.getLocalId());
        jgen.writeNumberField(Contact.COLUMN_SERVER_ID, value.getServerId());
        jgen.writeObjectField(Contact.COLUMN_NUMBERS, value.getNumbers());

        jgen.writeEndObject();
    }
}
公共类ContactSerializer扩展了StdSerializer{
受保护的ContactSerializer(){
超级(Contact.class);
}
@RequiresApi(api=Build.VERSION\u code.N)
@凌驾
public void serialize(联系人值、JsonGenerator jgen、SerializerProvider提供程序)引发IOException、JsonGenerationException{
jgen.writeStartObject();
jgen.writeNumberField(Contact.COLUMN_LOCAL_ID,value.getLocalId());
jgen.writeNumberField(Contact.COLUMN_SERVER_ID,value.getServerId());
jgen.writeObject字段(Contact.COLUMN_NUMBERS,value.getNumbers());
jgen.writeEndObject();
}
}

共享ContactSerializercode@AmerQarabsa:我添加了serializerI无法用您共享的代码重现您的问题,我猜这是其他地方导致了您的错误。对我来说,我也复制/粘贴了您的代码,没有错误发生。嗯。。还有一些额外的接触方法和一些常数。它们可能不会导致这些问题?另外,@JsonIgnore只在属性上,而不在其setter/getter.share ContactSerializer上code@AmerQarabsa:我添加了serializerI无法用您共享的代码重现您的问题,我猜这是其他地方导致了您的错误。对我来说,我也复制/粘贴了您的代码,没有错误发生。嗯。。还有一些额外的接触方法和一些常数。它们可能不会导致这些问题?另外,@JsonIgnore只是在属性上,而不是在它们的setter/getter上。
 ObjectMapper mapper = new ObjectMapper();
 Contacts c = mapper.readValue(result.getResult(), Contacts.class);
public class ContactSerializer extends StdSerializer<Contact> {

    protected ContactSerializer() {
        super(Contact.class);
    }

    @RequiresApi(api = Build.VERSION_CODES.N)
    @Override
    public void serialize(Contact value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException {

        jgen.writeStartObject();

        jgen.writeNumberField(Contact.COLUMN_LOCAL_ID, value.getLocalId());
        jgen.writeNumberField(Contact.COLUMN_SERVER_ID, value.getServerId());
        jgen.writeObjectField(Contact.COLUMN_NUMBERS, value.getNumbers());

        jgen.writeEndObject();
    }
}