我有一个简单的类下面的代码和用于写入的方法,然后读取:杰克逊矢量序列化异常
ObjectMapper mapper = new ObjectMapper();
try{
DataStore testOut = new DataStore();
DataStore.Checklist ch1 = testOut.addChecklist();
ch1.SetTitle("Checklist1");
String output = mapper.writeValueAsString(testOut);
JsonNode rootNode = mapper.readValue(output, JsonNode.class);
Map<String,Object> userData = mapper.readValue(output, Map.class);
}
public class DataStore {
public static class Checklist
{
public Checklist()
{
}
private String _title;
public String GetTitle()
{
return _title;
}
public void SetTitle(String title)
{
_title = title;
}
}
//Checklists
private Vector<Checklist> _checklists = new Vector<Checklist>();
public Checklist addChecklist()
{
Checklist ch = new Checklist();
ch.SetTitle("New Checklist");
_checklists.add(ch);
return ch;
}
public Vector<Checklist> getChecklists()
{
return _checklists;
}
public void setChecklists(Vector<Checklist> checklists)
{
_checklists = checklists;
}
}
线: 字符串输出= mapper.writeValueAsString(TESTOUT); 导致了一个让我困惑了几个小时并且完全放弃使用它的异常。 任何提示表示赞赏。
这里是个例外: 没有找到串行类的DataStore $清单和没有属性发现(避免异常,禁用SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS))(通过引用链创造BeanSerializer:数据存储[“清单” - > java.util.Vector [0])
我已经能够通过在杰克逊禁用功能来删除异常,但我仍然没有得到任何数据写出。 – wandercoder 2012-01-16 23:53:19
错误信息相当清楚是不是?杰克逊使用标准的Bean内省机制找不到任何属性。所以这就是你需要解决的问题。 – StaxMan 2012-01-18 05:28:44