JSON Jackson 2.0을 사용하여 데이터 모델을 파일에 쓰고 응용 프로그램에 다시로드합니다. 객체에 문자열을 성공적으로 쓸 수는 있지만 객체로 다시 마샬링하려고하면 다음 오류 메시지가 표시됩니다.JSON을 사용하여 문자열 마샬링
[단순형, 클래스 ImportAttributeModel]에 적합한 생성자가 없습니다. JSON에서 인스턴스화 할 수 없습니다. 개체 (형식 정보를 추가/사용 가능하게해야합니까?) at [Source : user; 행 1 열 : 111 (기준 체인을 통해 : ImportTemplateModel [ "modelList"])
여기public class ImportTemplateModel
{
private Map<Integer, AttributeModel> m_modelList;
private GraphElementType m_type;
public ImportTemplateModel()
{
}
// getters & setters
}
public class AttributeModel
{
private String m_label;
private String m_key;
private ElementDefinition m_definition;
public AttributeModel(String label, String key, ElementDefinition def)
{
m_label = label;
m_key = key;
m_definition = def;
}
// getters & setters
}
내가 &을 작성할 수 있도록 호출이다
이 내 클래스 코드는 모델을 읽으십시오 :
// Write model
ObjectMapper mapper = new ObjectMapper();
ImportTemplateModel itm = new ImportTemplateModel()
// set model atttributes
...
//
try {
mapper.writeValue(new File(filepath), itm);
}
catch (IOException e) {
}
....
// Read Model
ObjectMapper mapper = new ObjectMapper();
try {
mapper.readValue(new File(filepath), ImportTemplateModel.class);
}
catch (IOException e) {
}
제가 지금 뭘 잘못하고 있는지 확실하지 않습니다 ... 그것은 AttributeModel이 POJO가 아니기 때문에입니까? 또는이 구현을 위해지도를 사용할 수없는 이유는 무엇입니까? 그렇다면이 문제를 어떻게 해결할 수 있습니까?
예, 'AttributeModel' 클래스에 대한 빈 생성자를 배치 한 후 이제 작동합니다. 감사. – Foo