dom4j和fastjson基本使用

pom.xml

<dependencies>
     <!--lombok-->
     <dependency>
         <groupId>org.projectlombok</groupId>
         <artifactId>lombok</artifactId>
         <version>1.16.18</version>
     </dependency>
     <!--dom4j-->
     <dependency>
         <groupId>dom4j</groupId>
         <artifactId>dom4j</artifactId>
         <version>1.6.1</version>
     </dependency>
     <!--單元測試-->
     <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>4.12</version>
     </dependency>
     <!--firstjson-->
     <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>fastjson</artifactId>
         <version>1.2.47</version>
     </dependency>
     <!--log4j-->
     <dependency>
         <groupId>log4j</groupId>
         <artifactId>log4j</artifactId>
         <version>1.2.17</version>
     </dependency>
 </dependencies>

Dom4jUtil

public class Dom4jUtil {
    /**
     * 根據XML文件路徑獲取Document對象
     * @param pathUrl XML文件路徑
     * @return document
     */
    public static Document getDocument(String pathUrl){
        //創建SAXReader對象
        SAXReader reader =  new SAXReader();
        Document document = null;
        try {
            //讀取XML文件並返回document對象
            document = reader.read(pathUrl);
        } catch (DocumentException e) {
            e.printStackTrace();
        }
        return document;
    }

    /**
     * 展示文檔內容
     * @param document 文檔對象
     */
    public static void showElements(Document document){
        //獲取文檔的根節點
        Element rootElement = document.getRootElement();
        //獲取根節點下的子節點(迭代器的方式)
        Iterator<Element> it = rootElement.elementIterator();
        //迭代器迭代
        while (it.hasNext()){
            //獲取子節點
            Element element = it.next();
            //element.getName()獲得當前元素的標籤名
            String name = element.getName();
            System.out.println("當前元素的標籤名:"+name);

            //獲取子節點的屬性上的值並打印
            //String id = element.attribute("id").getValue();
            String id = element.attributeValue("id");
            System.out.println(id);

            //獲取根節點下的子節點(集合的方式)
            /*
            * element.elements("標籤名")
            * 獲得element元素下的所有標籤名與方法參數一樣的元素
            * */
            List<Element> childElement = element.elements();
            for (Element e : childElement) {
                //只有最底層的元素getText()纔會有值
                //獲得當前元素中包含的值
                //例如 <a>aaa</a> aaa就是我們獲得的值
                System.out.println(e.getText());
            }
            System.out.println("----------------------------");
        }
    }

    /**
     * 根據文檔對象創建XML文件
     * @param document 文檔對象
     * @throws IOException
     */
    public static void createXMLByDocument(Document document) throws IOException {
        //創建文件
        String filePath = "d:\\studentInfo.xml";
        File file = new File(filePath);
        if (!file.isFile()){
            file.createNewFile();
        }
        //創建輸出流對象
        FileOutputStream fos = new FileOutputStream(file);
        //獲得格式化對象
        OutputFormat outputFormat = OutputFormat.createPrettyPrint();
        //參數: 輸出流,格式化對象
        XMLWriter writer = new XMLWriter(fos,outputFormat);

        //寫出文件
        writer.write(document);
        /*
        * 多個流關閉流程
        * 向上依次關閉
        * */
        writer.close();
        fos.close();
    }
}

JsonConvert

public class JsonConvert {

    /**
     * 將json字符串轉換爲對象
     * @param jsonStr json字符串
     * @param t
     * @param <T>     轉化成的對象類型
     * @return 返回值類型
     */
    public static <T> T jsonToObject(String jsonStr, Class<T> t) {
        return JSON.parseObject(jsonStr, t);
    }

    /**
     * 將對象轉換爲字符串
     *
     * @param o
     * @return
     */
    public static String objectToString(Object o) {
        return JSON.toJSONString(o);
    }
}

Dom4jTest.class

public class Dom4jTest {
    @Test
    public void getDocument(){
        String pathUrl = "src\\main\\resources\\doc\\student.xml";
        Document document = Dom4jUtil.getDocument(pathUrl);
        System.out.println(document);
        Dom4jUtil.showElements(document);
    }

    @Test
    public void createXMLByDocument() throws IOException {
        //創建新的文檔對象
        Document document = DocumentHelper.createDocument();
        //添加根節點(元素)
        /*
        * 注意: 不是最底層元素不要設置 .addText()
        * */
        Element rootElement = document.addElement("class");
        rootElement.addElement("student").addAttribute("id","001")
                .addAttribute("classNo","Java1902").addText("James Strachan");
        rootElement.addElement("student").addAttribute("id","002")
                .addAttribute("classNo","Java1902").addText("James Strachan");
        Dom4jUtil.createXMLByDocument(document);
    }
}

FastJsonTest.class

public class FastJsonTest {
    @Test
    public void jsonToObject(){
        //拼接json字符串
        String jsonStr = "{\"userId\":" + "\"1\"," +
                "\"userName\":" + "\"坤坤\"," +
                "\"age\":" + "\"22\"}";
        Object o = JsonConvert.jsonToObject(jsonStr, User.class);
        System.out.println(o);
    }

    @Test
    public void objectToJson(){
        User user = new User();
        user.setUserId(1);
        user.setUsername("陽陽");
        user.setAge(22);
        String s = JsonConvert.objectToString(user);
        System.out.println(s);
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章