xml,json,对象 之间的相互转换

来源:互联网 发布:c语言编写驱动程序 编辑:程序博客网 时间:2024/05/16 12:40

注意事项

  • json的转换有多种jar包,这里我用的是阿里的高性能Json开发包——fastjson.jar,好吧我承认就是这个包比较简易。。我懒所以用这个包
  • XML我用的是Xstrem包

先写个Person类

public class Person {    private int id;    private String name;     public Person(){}    public Person(int id,String name){        this.id = id;        this.name = name;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    @Override    public String toString() {        return "Person [id=" + id + ", name=" + name + "]";    }}

JsonDemo类(Json和对象之间的转换)

public class JsonDemo {    public static void main(String[] args) {        Person person =new Person(1,"习近平");        String jsonString = JSON.toJSONString(person);        System.out.println("Person转换成String"+jsonString);        Person person2 = JSON.parseObject(jsonString,Person.class);        System.out.print("String转换成Person"+person2);    }}

XMLDemo类(XML和对象之间的转换)

public class XMLDemo {    public XMLDemo() {        // TODO Auto-generated constructor stub    }    public static void main(String[] args) {        XStream xStream = new XStream();        Person person = new Person(1,"小明");        ArrayList<String> list =new ArrayList<String>();         list.add("huwiehui");         list.add("我");        //标签改为<xml>        xStream.alias("xml", Person.class);        //把字段转换成属性        xStream.useAttributeFor(Person.class, "id");        String xml = xStream.toXML(person);        String xml2 = xStream.toXML(list);        //System.out.println(xml);        System.out.println(list);        //xml文件输出到一个文件        try {            FileOutputStream  out= new FileOutputStream("E:/test/ttt.txt");            out.write(xml.getBytes());            out.close();            //文件读取xml转成Person            FileInputStream inputStream = new FileInputStream("E:/test/ttt.txt");            //note:字节流和编码无关,要转成字符流才有设置编码。或者在getByte()那里设置,如getByte("utf-8")            InputStreamReader bufferedReader = new InputStreamReader(inputStream,"utf-8");             Object object =xStream.fromXML(bufferedReader);             Person p = (Person)object;             ArrayList<String> arrayList = (ArrayList<String>) xStream.fromXML(xml2);            // System.out.println(p.toString());             System.out.println(arrayList);             //作业  xStream.addImplicitCollection();用处        } catch (FileNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}
0 0