使用YAML(SnakeYaml库)的Java序列化,HashMaps未显示在序列化输出中

时间:2011-12-13 16:35:20

标签: java serialization hashmap yaml snakeyaml

当我序列化一个类对象时:

class MyClass{

   String value;
   public MyClass(){}

   public void setValue(String value){
      this.value = value;
   }

   public String getValue(){
      return value;
   }

}

并将其序列化为:

 MyClass c1 = new MyClass();
    c1.setValue("this is a value");
    Map<String, Object> result = new HashMap<String, Object>();

    result.put("MyClass", c1);
    Yaml yaml = new Yaml();
    String output = yaml.dump(result);

工作得很好。但是,现在如果在我的班级中我有另一个值,那么:

class MyClass{

   String value;
   Map<Integer, AnotherClass> MyList
   public MyClass(){}

   public void setValue(String value){
      this.value = value;
   }

   Map<Integer, AnotherClass> CList = new HashMap<Integer, AnotherClass>();
   public void setList(AnotherClass AL){
      CList.put(1,AL);
      this.MyList = CList;
   }

   public String getValue(){
      return value;
   }

}

现在我重复一遍,程序工作但是在序列化输出中,我没有看到这个HashMap。有什么问题,是否有一些不同的方法用于序列化HashMap类型对象?请建议......

1 个答案:

答案 0 :(得分:0)

地图没有吸气剂,这就是它被忽略的原因。