java对象转换成xml,javascript对象字符串, xml转换成java对象,支持任意类型,支持深层转换

来源:互联网 发布:发发棋牌源码 编辑:程序博客网 时间:2024/05/21 03:16
/* * $RCSfile: TestJ2X.java,v $ * $Revision: 1.1  $ * $Date: 2007-6-7  $ */package test.org.j2x.xml;import java.io.ByteArrayInputStream;import java.io.IOException;import org.dom4j.DocumentException;import org.j2x.test.TestObject;import org.j2x.util.Dom4jUtil;import org.j2x.util.Equal;import org.j2x.util.IO;import org.j2x.util.TestUtil;import org.j2x.xml.Xml2Java;/** *   * <p>Title: TestJ2X</p>  * <p>Description: </p>  * @author chenyankui * @version 1.0 */public class TestJ2X{    /**     * @param args - void     * @author: chenyankui     */    public static void main(String[] args)    {        String java2Xml = "./test/Java2XmlTestObject.xml";        String xml2Java = "./test/Xml2JavaTestObject.xml";                TestUtil.showRuler(150);                /**         * 如果生成的两份文件完全一样,则证明互相转换是成功的         */        testJ2X(TestObject.createTestObject(), java2Xml, xml2Java);                try        {            boolean isEqual = Dom4jUtil.load(java2Xml, "GBK").equals(Dom4jUtil.load(xml2Java, "GBK"));                        /**             * 此处一般打印false,证明不相等             * 这是因为TestObject对象内部存在Map对象,Map对象内的元素没有顺序导致了两份文件结构不一致,从而导致两个document对象也不一致             */            System.out.println("equals: " + isEqual);        }        catch(DocumentException e)        {            e.printStackTrace();        }                Object o1 = new Xml2Java().read(java2Xml);        Object o2 = new Xml2Java().read(xml2Java);                System.out.println("equals: " + Equal.equals(o1, o2));    }        /**     * 验证测试     * @param java2Xml     * @param xml2Java     */    public static void testJ2X(Object object, String java2Xml, String xml2Java)    {        if(object == null)        {            System.out.println("[Test Object]: null");        }        else        {            System.out.println("[Test Object]: " + object.getClass().getName());        }                testJava2Xml(object, java2Xml);        testXml2Java(object, xml2Java);    }        /**     * 将对象转换成xml并保存在指定路径下     * @param testObject     * @param savePath     */    public static void testJava2Xml(Object testObject, String savePath)    {        String xml = TestUtil.java2Xml(testObject);                System.out.println("Xml:/r/n" + xml);                try        {            IO.copy(new ByteArrayInputStream(xml.getBytes()), savePath);        }        catch(IOException e)        {            e.printStackTrace();        }    }        /**     * 将给定的xml转换成对象然后再将对象转换成xml并保存在指定路径下     * @param testObject     * @param savePath     */    public static void testXml2Java(Object testObject, String savePath)    {        String xml = TestUtil.java2Xml(testObject);                System.out.println("Xml:" + xml);                Object object = TestUtil.xml2Java(xml);                 testJava2Xml(object, savePath);    }} /* * $RCSfile: TestReader.java,v $ * $Revision: 1.1  $ * $Date: 2007-6-8  $ */package test.org.j2x.xml;import java.io.ByteArrayInputStream;import java.io.InputStream;import org.j2x.util.TestUtil;/** *   * <p>Title: TestInputStream</p>  * <p>Description: </p>  * @author chenyankui * @version 1.0 */public class TestInputStream{    /**     * @param args - void     * @author: chenyankui     */    public static void main(String[] args)    {        TestUtil.showRuler(150);                testInputStream();    }        public static void testInputStream()    {        InputStream stream1 = new ByteArrayInputStream("You are a fool man".getBytes());        InputStream stream2 = new ByteArrayInputStream("You are a fool man".getBytes());                /**         * reader1被读取完毕         */        TestJ2X.testJava2Xml(stream1, "./test/Java2XmlInputStream.xml");                /**         * 需要新定义的reader2,reader1已经没有数据         */        TestJ2X.testXml2Java(stream2, "./test/Xml2JavaInputStream.xml");    }}/* * $RCSfile: TestList.java,v $ * $Revision: 1.1  $ * $Date: 2007-6-8  $ */package test.org.j2x.xml;import java.util.ArrayList;import java.util.List;/** *   * <p>Title: TestList</p>  * <p>Description: </p>  * @author chenyankui * @version 1.0 */public class TestList{    /**     * @param args - void     * @author: chenyankui     */    public static void main(String[] args)    {        testList();    }        public static void testList()    {        List list = new ArrayList();                list.add("白日依山尽,");        list.add("黄河入海流,");        list.add("欲穷千里目,");        list.add("更上一层楼.");                List childList = new ArrayList();                childList.add("好诗!");        childList.add("真正的好诗!");                list.add(childList);                TestJ2X.testJ2X(list, "./test/Java2XmlList.xml", "./test/Xml2JavaList.xml");    }}/* * $RCSfile: TestReadObject.java,v $ * $Revision: 1.1  $ * $Date: 2007-6-8  $ */package test.org.j2x.xml;import java.io.File;import org.j2x.util.TestUtil;import org.j2x.xml.Xml2Java;/** *  * <p>Title: TestReadObject</p>  * <p>Description: </p>  * @author chenyankui * @version 1.0 */public class TestReadObject{    /**     * @param args - void     * @author: chenyankui     */    public static void main(String[] args)    {        testReadObjectFromXml();    }        public static void testReadObjectFromXml()    {        File file = new File("./test/");                File[] list = file.listFiles();                TestUtil.showRuler(150);                String indent = "    ";                for(int i = 0; i < list.length; i++)        {            if(list[i].exists() && list[i].isFile())            {                System.out.println("[--------------------------------------------------] " + i);                                Object object = new Xml2Java().read(list[i]);                                if(object != null)                {                    System.out.println(indent + list[i].getAbsolutePath());                    System.out.println(indent + "[Object]:" + object.getClass().getName());                    System.out.println(indent + "[Value ]:" + object.toString());                }                else                {                    System.out.println(indent + list[i].getAbsolutePath());                    System.out.println(indent + "[Object]: null");                }                                System.out.println("[--------------------------------------------------] " + i);                System.out.println();            }        }    }}/* * $RCSfile: TestReturnValue.java,v $ * $Revision: 1.1  $ * $Date: 2007-6-8  $ */package test.org.j2x.xml;import org.j2x.util.ReturnValue;import org.j2x.util.TestUtil;/** *  * <p>Title: TestReturnValue</p>  * <p>Description: </p>  * @author chenyankui * @version 1.0 */public class TestReturnValue{    public static void main(String[] args)    {        TestUtil.printAsXml(new ReturnValue(0, "You are right !"));    }}/* * $RCSfile: TestStringArray.java,v $ * $Revision: 1.1  $ * $Date: 2007-6-8  $ */package test.org.j2x.xml;/** *   * <p>Title: TestStringArray</p>  * <p>Description: </p>  * @author chenyankui * @version 1.0 */public class TestStringArray{    /**     * @param args - void     * @author: chenyankui     */    public static void main(String[] args)    {        test();    }        public static void test()    {        String[] array = new String[]{"string1", "string2"};                /**         * reader1被读取完毕         */        TestJ2X.testJava2Xml(array, "./test/Java2XmlStringArray.xml");                /**         * 需要新定义的reader2,reader1已经没有数据         */        TestJ2X.testXml2Java(array, "./test/Xml2JavaStringArray.xml");    }}/* * $RCSfile: TestList.java,v $ * $Revision: 1.1  $ * $Date: 2007-6-8  $ */package test.org.j2x.xml;import java.util.Vector;/** *   * <p>Title: TestVector</p>  * <p>Description: </p>  * @author chenyankui * @version 1.0 */public class TestVector{    /**     * @param args - void     * @author: chenyankui     */    public static void main(String[] args)    {        testVector();    }        /**     *      *  - void     * @author: chenyankui     */    public static void testVector()    {        Vector vertor = new Vector();                vertor.add("大江东去,浪,淘尽千古风流人物!");        vertor.add("故垒西边,人道是,三国周郎赤壁!");        vertor.add("其实不是 !");                TestJ2X.testJ2X(vertor, "./test/Java2XmlVector.xml", "./test/Xml2JavaVector.xml");    }}/* * $RCSfile: TestXml2Java.java,v $ * $Revision: 1.1  $ * $Date: 2007-6-6  $ */package test.org.j2x.xml;import java.io.ByteArrayInputStream;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.dom4j.Document;import org.j2x.test.TestObject;import org.j2x.util.IO;import org.j2x.util.TestUtil;import org.j2x.xml.Java2Xml;/** *   * <p>Title: TestXml2Java</p>  * <p>Description: </p>  * @author chenyankui * @version 1.0 */public class TestXml2Java{    /**     * @param args - void     * @author: chenyankui     */    public static void main(String[] args)    {        String java2Xml = "E://Temp//java2xml.xml";        String xml2Java = "E://Temp//xml2java.xml";                /**         * 如果生成的两份文件完全一样,则证明互相转换是成功的         */        testJ2X(java2Xml, xml2Java);    }        /**     * 验证测试     * @param java2Xml     * @param xml2Java     */    public static void testJ2X(String java2Xml, String xml2Java)    {        // TestObject object = TestObject.createTestObject();                List object = new ArrayList();                object.add("123");        object.add("456");                testJava2Xml(object, java2Xml);        testXml2Java(object, xml2Java);    }        /**     * 将对象转换成xml并保存在指定路径下     * @param testObject     * @param savePath     */    public static void testJava2Xml(Object testObject, String savePath)    {        String xml = TestUtil.java2Xml(testObject);                try        {            IO.copy(new ByteArrayInputStream(xml.getBytes()), savePath);        }        catch(IOException e)        {            e.printStackTrace();        }    }        /**     * 将给定的xml转换成对象然后再将对象转换成xml并保存在指定路径下     * @param testObject     * @param savePath     */    public static void testXml2Java(Object testObject, String savePath)    {        String xml = TestUtil.java2Xml(testObject);                Object object = TestUtil.xml2Java(xml);                testJava2Xml(object, savePath);    }        /**     * 将对象转换成Document     * @return     */    public static Document getTestDocument()    {        TestObject object = TestObject.createTestObject();                Java2Xml java2Xml = new Java2Xml();                return java2Xml.toDocument("Object", object);    }}/* * $RCSfile: TestJsonUtil.java,v $ * $Revision: 1.1  $ * $Date: 2007-5-30  $ */package test.org.j2x.jso;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.j2x.test.TestObject;import org.j2x.util.TestUtil;/** *   * <p>Title: TestJsonUtil</p>  * <p>Description: </p>  * @author chenyankui * @version 1.0 */public class TestJava2Jso{    public static void main(String[] args)    {        testObject();    }        /**     *      *  - void     * @author: chenyankui     */    public static void testObject()    {        TestObject object = TestObject.createTestObject();                object.getMyList().add(new TestObject());                object.setMyIntArray(new int[]{5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 20});                object.getMyMap().put(new TestObject(), "123");        object.getMyMap().put("456", new TestObject());        object.getMyMap().put("789", "abc");                TestUtil.printAsJson(object);    }        public static void testNull()    {        Object object = null;                TestUtil.printAsJson(object, null, null);    }        /**     *      *  - void     * @author: chenyankui     */    public static void testByte()    {        Byte oByte = new Byte((byte)5);                TestUtil.printAsJson(oByte, null, null);    }        /**     *      *  - void     * @author: chenyankui     */    public static void testDate()    {        TestUtil.printAsJson(new java.util.Date(), null, null);    }        /**     *      *  - void     * @author: chenyankui     */    public static void testList()    {        List list = new ArrayList();                list.add(new Integer(1));        list.add(new Double(2.3D));        list.add("Hello ");        list.add("You are a fool man !");        list.add(new int[]{1, 2, 3});                TestUtil.printAsJson(list);    }        /**     *      *  - void     * @author: chenyankui     */    public static void testMap()    {        Map map = new HashMap();                map.put("a", "This a character");        map.put("b", "This a character");        map.put("c", "This a character");                map.put(new TestObject(), "This a TestObject");                TestUtil.printAsJson(map);    }        public static void testCRLF()    {        TestUtil.printAsJson("/r/n/b/t/f");    }}