XML与JSON

XML与JSON

  1. XML
    特性:独立的无平台性的具有自我描述性的标记语言
    学习的用处:
    与非java语言传输文件与对象
    配置文件
    网络传输
    数据存储
    开头有自声明<?xml version = "1.0" encoding = "UTF-8"?> 文档由一个个的标记组成

tips:不可以数字,标点符号,xml类似字母开头
不可以有空格和冒号
可以嵌套不可以交叉
有且仅有一个根节点

属性是一个个的键值对,最好都用双引号框起来,不同键值对之间用空格隔开就好了。

  1. 我们主要看DOM4J的使用
//获取输入流
        FileInputStream fis = new FileInputStream("D:\\IntelliJ IDEA 2020.1\\Kaikeba\\src\\com\\java\\homework4_9\\Demo1.xml");
        //创建xml读取对象
        SAXReader sr = new SAXReader();
        //读取并得到文档对象
        Document document  = sr.read(fis);
        //通过文档获取根元素
        Element rootElement = document.getRootElement();
        //开始解析元素
        System.out.println(rootElement.getName());
         //获取的是子节点的数据
        Element book = rootElement.element("book");
        Element name = book.element("name");
        System.out.println(name.getText());
  1. 介绍一下Xpath
 List <Node> names= document.selectNodes("//book[@id = '1001']//name");

这样的类型,
介绍下表达式
/ 表示根节点
// 发起节点查询他的后代
. 当前节点
… 父节点
@ 选择属性,数组要在【】中@属性

  1. 借助Java生成XML
    借助文档帮助器DocumentHelper的creatDocument();
    addElment()添加根节点
    setText()设置内容
    addAttribute()添加属性
    最后借助输出流输出。
 //通过文档帮助器,建立一个文档对象
        Document document = DocumentHelper.createDocument();
        //添加第一个节点
        Element books = document.addElement("books");
        //丰富子节点
        for(int i=0;i<100;i++){
            Element book = books.addElement("book");
            Element name = book.addElement("name");
            name.setText(i + "月亮与六便士");
            Element info = book.addElement("info");
            info.setText(i + "没有月光,没有钱");

        }
        //创建一个文件输出流
        FileOutputStream fos = new FileOutputStream("D:\\桌面\\新建文件夹//books.xml");
        //转变为XML输出流
        XMLWriter xmlWriter = new XMLWriter(fos);
        //写文档
        xmlWriter.write(document);
        //释放资源
        xmlWriter.close();

5.XStream对象
alias(name , 包名.类名)
toXML( p )变成XML

  1. JSON
    直接上代码
//创建Gson对象
        Gson g = new Gson();
        //转换
        Book b = new Book("100","苹果","苹果好吃");
        String s = g.toJson(b);
        System.out.println(s);
 Book book = new Book("1002","唐诗三百首","床前明月光");
        //1.    转换
        String json = JSON.toJSONString(book);
        System.out.println(json);
 //1.    创建Gson对象
        Gson g = new Gson();
        //2.    转换  :  {"id":"100","name":"金苹果","info":"种植苹果真辛苦"}
        HashMap data = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"种植苹果真辛苦\",\"page\":[\"锄禾日当午\",\"汗滴禾下土\",\"嘿嘿嘿嘿嘿\"]}", HashMap.class);
        List page = (List) data.get("page");
        System.out.println(page.get(1));
 //1.    转换  : ["一二三","二三四","三四五"]
        List<String> strings = JSON.parseArray("[\"一二三\",\"二三四\",\"三四五\"]", String.class);
        System.out.println(strings.get(1));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小陈橙同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值