JSON Jackson 2.0を使用してデータモデルをファイルに書き込み、それをアプリケーションにロードし直しています。オブジェクトを文字列に正常に書き込むことはできますが、オブジェクトをオブジェクトにマーシャリングしようとすると、次のエラーメッセージが表示されます。
タイプ[simpletype、class ImportAttributeModel]に適したコンストラクターが見つかりません:[Source:user;でJSONオブジェクトからインスタンス化できません(タイプ情報を追加/有効化する必要がありますか?)。行: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ではないためですか?それとも、この実装にマップを使用できないのですか?もしそうなら、どうすればこれを回避できますか?