微信开发者技术沙龙感悟

作业:今天是 20xx 年 x 月 x 日,你作为优秀开发者被邀请参与 《微信开发者技 术沙龙》。 李老师是给你留下印象最深的受邀嘉宾,他属于鹅肠微信公众平台官方人 员,他的分享对你触动很大。他分享了公众平台接口数据格式 XML 与 JSON 混 乱的缘由。 在鹅肠微信公众平台设计早期,因为开发团队是从鹅肠其他团队凑的。内 部不同的子团队开发规范很不一致。很多老团队喜欢使用 XML 格式传输数据 (少数,点击查看),很多新人团队过来的成员喜欢使用 JSON 作为传输格式(多 数,点击查看)。为了团队的稳定,当时并没有对格式进行特殊的规则定制,导 致现在很多开发者对此怨声哀悼。 因为平台已经有了百万的开发者,再更改操作规范会导致大量生态问题的 发生,所以到目前问题依旧存在,难以修缮。 你在参与这次技术沙龙之前,对数据传输的格式不太在意。李老师的分享 对你触动很大,也让你明白了,开发时如果前后端没有一个合理统一的数据规 新职课教研教学中心 2 则,会有大量的不必要问题发生。所以你下定决心要掌握好 JSON 和 XML 技术。

第一步,记得在使用XML和JSON是添加jar包,jar包的添加方法就不在这说了

第二步:创建包,类,这应该都知道

然后就是代码了

这个是获取文档类容的

package xml;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;


import java.awt.print.Book;
import java.io.FileInputStream;
import java.io.FileNotFoundException;


/**
 * @Author:
 * @Description:
 * @Date Created in 2021-09-25 12:12
 * @Modified By:
 */
public class Demo1 {
    public static void main(String[] args) throws DocumentException, FileNotFoundException {
        //找到目标文档
        FileInputStream fis = new FileInputStream("D://Demo1.xml");
        //刚刚添加的jar包就是为了使用这个对象
        SAXReader sa = new SAXReader();
        //这个文档对象
        Document read = sa.read(fis);
        //获取根节点
        Element root = read.getRootElement();
        //后面就是想要什么节点自己看就行了
        Element s = root.element("book");
        String book = s.elementText("name");
        System.out.println(book);


    }
}

 这个是读取网页内容的

package xml;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

/**
 * @Author:
 * @Description:
 * @Date Created in 2021-09-25 14:25
 * @Modified By:
 */
public class Demo2 {
    public static void main(String[] args) throws IOException, DocumentException {
        String phone = "15573014586";
        //获得目标网里的xml
        URL u = new URL("http://apis.juhe.cn/mobile/get?phone=" + phone + "&dtype=xml&key=9f3923e8f87f1ea50ed4ec8c39cc9253");
       //一步步获取读取对象
        URLConnection conn = u.openConnection();
        InputStream is = conn.getInputStream();
        //jar包里的对象创建
        SAXReader sa = new SAXReader();
        Document docu = sa.read(is);
        //获取根节点
        Element rool = docu.getRootElement();
        String s = rool.elementText("resultcode");
        System.out.println(s);
    }
}

 这个是自己生成xml文件

package xml;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;

import javax.sql.rowset.spi.XmlWriter;
import java.io.*;

/**
 * @Author:
 * @Description:
 * @Date Created in 2021-09-25 14:53
 * @Modified By:
 */
public class Demo3 {
    public static void main(String[] args) throws IOException {
        //利用文档生成器生成文档
        Document doc = DocumentHelper.createDocument();
        //生成根节点啥的,一步步添加内容
        Element books = doc.addElement("books");
        Element book = books.addElement("book");
        Element name = books.addElement("name");
        Element text = name.addText("哈哈哈");
        //创建文件输出流,并设置保存的位置
        FileOutputStream fos=new FileOutputStream("D://a.xml");
        XMLWriter xm=new XMLWriter(fos);
        //写入之后记得关闭
        xm.write(doc);
        xm.close();
    }
}

json

先创建一个图书对象,这个应该都会

package json;

/**
 * @Author:
 * @Description:
 * @Date Created in 2021-09-25 15:07
 * @Modified By:
 */
public class Book {
    private int num;
    private String name;
    private String info;

    @Override
    public String toString() {
        return "Book{" +
                "num=" + num +
                ", name='" + name + '\'' +
                ", info='" + info + '\'' +
                '}';
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }

    public Book(int num, String name, String info) {
        this.num = num;
        this.name = name;
        this.info = info;
    }

    public Book() {
    }
}

然后利用谷歌的gson生成json,也可以用阿里之类别的,记得导入jar包

package json;

import com.google.gson.Gson;

/**
 * @Author:
 * @Description:使用json
 * @Date Created in 2021-09-25 14:52
 * @Modified By:
 */
public class Dome {
    public static void main(String[] args) {
       /*这个注释起来的是转换成json的代码
       //先生成一个图书对象
        Book b=new Book(1001,"语文书","教我们认字");
        用new gson().tojson方法转成字符串
        String s = new Gson().toJson(b);
        System.out.println(s);*/
       //{"num":1001,"name":"语文书","info":"教我们认字"}
        //下面的是解析json,我直接写一个代码里了
        
        //创建一个gson对象
        Gson g=new Gson();
        //用fromjson方法传入一串字符,参数二则是你要转成什么对象
        Book b = g.fromJson("{\"num\":1001,\"name\":\"语文书\",\"info\":\"教我们认字\"}", Book.class);
        System.out.println(b.getInfo());
    }
}

最后我个人认为还是json更方便。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值