学习笔记:XML和JSON

XML文档组成:

声明:<?xml version="1.0" endcoding="UTF-8"?>

标记(元素、标签、节点):

        开始标记(开放标记):<标记名称>

        结束标记(闭合标记):</标记名称>

        标记内容:开始标记和结束标记中间

        标记的属性:在开始标记中的键值对,必须被引号引住

        注释:不能写在声明前,不能嵌套。<!--     注释           -->

                <?xml version="1.0" endcoding="UTF-8"?>

                <!--我是个栗子-->

                <names id="10001" groupid="1">

                        <name>猪八戒 class="pig"</name>

                        <name>孙悟空 age="999"</name>

                        <cdata>我后面这一段不会被解析<![CDATA[我是CDATA,我不会被解析]]><cdata>

                </names>

XML的解析方式:

SAX解析:按行解析

DOM解析:建立文档树模型

JDOM解析:JAVA特定的DOM解析

DOM4J解析:JDOM的智能分支,包括集成的XPath 支持、XML Schema支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项

解析XML:

URL url = new URL(网址字符串);        //建网址对象
URLConnection conn = url.openConnection();        //打开网址
InputStream is = conn.getInputStream();        //获取XML资源的输入流

SAXRead sr = new SAXReader();        //读取流的工具对象

Domcument doc=sr.read(is);        //用读取对象流对象得到文档对象

        【Element root = doc.addElement("根节点名称"); 】         //添加根节点方法

Element root = doc.getRootElement();        //通过文档对象得到根元素对象

        Element类方法:

        String getName();                                        //获取节点名称

        String getText();                                           //获取节点内容
        String setText();                                           //设置节点内容
        
        Element element(String 子节点名称);       //获取匹配名称的第一个子节点对象.
        List<Element> elements();                        //获取所有的子节点对象
        String attributeValue(String 属性名称);        //获取节点的属性值
        String elementText(String 子节点名称);        //获取子节点的内容

        Element addElement(String 子节点名称);        //添加子节点

        void addAttribute(String 属性名 ,String 属性值);        //添加属性



XPATH解析XML:

 路径表达式:

 

Node node = selectSingleNode(" 路径表达式");        //Node是Element的父
List<Element> es = selectNodes(" 路径表达式 ");

生成XML:

1. 通过文档帮助器 (DocumentHelper) , 创建空的文档对象
         Document doc = DocumentHelper.createDocument();
2. 通过文档对象 , 向其中添加根节点
         Element root = doc.addElement("根节点名称");
3. 通过根节点对象 root , 丰富我们的子节点
        Element e = root.addElement("元素名称 ");
4. 创建一个文件输出流 , 用于存储 XML 文件  
        FileOutputStream fos = new FileOutputStream("要存储的位置 ");
5. 将文件输出流 , 转换为 XML 文档输出流

 

        OutputFormat format = OutputFormat.createPrettyPrint();

        XMLWriter xw = new XMLWriter(fos.format);

6. 写出文档
        xw.write(doc);
7. 释放资源
        xw.close();

XStream:

 1. 创建XStream 对象

        XStream x = new XStream();
2. 修改类生成的节点名称 ( 默认节点名称为 包名 . 类名 )
        x.alias("节点名称 ", 类名 .class);
3. 传入对象 , 生成 XML 字符串
        String xml字符串 = x.toXML( 对象 );

对象格式:

java:
        class Book{
                private String name;
                private String info;
                get/set...
        }
        Book b = new Book();
        b.setName(“金苹果 ”);
        b.setInfo(“种苹果 ”);
        ...
js:
        var b = new Object();
        b.name = "金苹果 ";
        b.info = "种苹果 ";
XML:
        <book>
                <name>金苹果</name>
                <info>种苹果</info>
        </book>
JSON:
        {
                "name":"金苹果",
                "info":"种苹果"
        }
        
         [元素 1,元素2...]        //数组格式。在 JSON 格式中可以与对象互相嵌套

解析JSON:

Gson:谷歌

String json = new Gson().toJSON(要转换对象);

 对象 = new Gson().fromJson(JSON字符串,对象类型.class);

FastJson:阿里

String json = JSON.toJSONString(要转换的对象); 

 类型 对象名=JSON.parseObject(JSON字符串, 类型.class);

 Collection<类型> list=JSON.parseArray(JSON字符串,类型.class);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值