XStream处理JSON和XML

1.1     创建序列化的类
     public class ExcuteJob
{
private String name;
private String group;
private String className;
private String cronExpression;
}
public class ExcuteJobs
{
private ArrayList<ExcuteJob> excuteJobs;

public ArrayList<ExcuteJob> getExcuteJobs()
{
return excuteJobs;
}

public void setExcuteJobs(ArrayList<ExcuteJob> excuteJobs)
{
this.excuteJobs = excuteJobs;
}
}
    注意:
     请注意上面两个类的字段都是私有的,XStream并不关心字段的可见性,没有getter/setter也没关系,也不要求具有默认的构造函数。
1.2 初始化XStream
     XStream stream = new XStream();
    
     stream.addImplicitCollection(ExcuteJobs.class, "excuteJobs");
    该方法的作用是引入隐含集合(Implicit Collection),即某个类包含集合字段,引入隐含集合方法可以在生成的XML中并不显示集合字段的标签。

    stream.alias("excuteJob", ExcuteJob.class);
   stream.alias("excuteJobs", ExcuteJobs.class);
  注意:这是可选的步骤,没有这一步Xstream也能够正常工作,但是XML的元素名会包含类的完全路径(包含报名),造成XML不够简洁。
1.3 序列化对象至XML
     String xml = xstream.toXML(实例对象);
1.4 从XML反序列化至对象
        根据序列化的XML重建一个JavaBean,只需调用Xstream对象的fromXML(String)方法即可。
         InputStream iptFile =  JobExcute.class.getClassLoader().getResourceAsStream("jobmission.xml");
        ExcuteJobs jobs = (ExcuteJobs) stream.fromXML(iptFile);
         ArrayList<ExcuteJob> jobList = jobs.getExcuteJobs();
         for (ExcuteJob job : jobList){}
1.5 快速上手小结
(1) xstream.alias(String elementName, Class cls);
        该方法用于创建自定义类类名所对应XML元素的名称。
(2) xstream.toXML(Object obj);
        该方法用于将传入的JavaBean对象序列化为XML字符串并返回。
(3) xstream.fromXML(String xml);
        该方法用于将传入的XML字符串反向序列化为JavaBean对象。

你可能感兴趣的:(json,xml)