1
Jackson을 사용하여 JSON으로 객체를 변환하려고하면이 예외가 발생합니다. com.fasterxml.jackson.databind.JsonMappingException : (참조 체인을 통해) 주기로 연결되는 직접 자체 참조
나는 매우 간단한 인터페이스를 가지고 그런public interface Spreadsheet {
ExcelSheet getSheetName();
}
@JsonTypeInfo(use=JsonTypeInfo.Id.NAME, include= JsonTypeInfo.As.WRAPPER_OBJECT, property="type")
@JsonSubTypes({
@JsonSubTypes.Type(value=Civ.class, name="civ"),
@JsonSubTypes.Type(value=GreatPerson.class, name="greatperson"),
@JsonSubTypes.Type(value=Wonder.class, name="wonder")
})
public interface Item<T> extends Spreadsheet {
//some methods
}
@JsonTypeName("civ")
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "objectType")
public class Civ implements Item<Civ> {
//Implementation
}
항목
public class PBF {
private String id;
private List<Player> players = Lists.newArrayList();
private List<Item> items = Lists.newArrayList();
}
이 코드를 사용하여 JSON을 만들려고
를 사용하여 클래스, 나는 제목에 정의 된 예외가ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(pbf);
전체 소스 코드는 Github에 있습니다. 8080/게임
PS : 필수 자바 8 MongoDB를
Source code from Github을 다음 localhost로 귀하의 브라우저를 자바 : 당신이 재생하려는 경우, 그냥 REPO를 복제, 깨끗한 MVN이 & & MVN 간부를 설치`실행
전체 예제를 게시 할 수 있습니까? 누락 된 코드 (가정)로 제공 한 코드를 사용할 때 예외가 발생하지 않습니다. –
PBF의 항목에는 많은 항목이 있습니다. 그게 뭔가 관련이 있을까요? –
그럴 가능성이 큽니다. 나는 그것을 시도하지 않았다. 객체는 자신에 대한 참조를가집니다. –