1.XML
1.1 概念
XML,即可扩展标记语言( eXtensible Markup Language ),是一种具有平台无关性以及自我描述性的标记语言
1.2 语法
<!--文档声明--><?xml version="1.0" encoding="UTF-8"?>//标记,也称元素/标签/节点<!--开始标记--><标记名称><!--根标记:1.标记可以嵌套,但不允许交叉2.标记名称允许重复3.标记除了开始与结束,还有属性--><persons><person><name>李四</name><length>180cm</length></person><person><name>李四</name><length>200cm</length></person></persons>//结束标记</标记名称>
1.3 调用XML文件
1.3.1 方式以及对标记的方法
//通过文档对象, 获取XML文档中的根元素对象Element root = doc.getRootElement();//添加根节点Element root = doc.addElement("根节点")//获取节点名称String getName();//获取节点内容String getText();//设置节点内容String setText();//设置节点内容String setText();//根据子节点的名称,获取匹配名称的第一个子节点对象Element element(String name);//获取所有子节点对象List<Element> elements();//获取节点属性String attributeValue(String 属性名称)//获取子节点的内容String elementText(String name);//添加子节点Element addElement(String name);//添加属性void addAttribute(String name,String value)
1.3.2 DOM4J-XPATH
方式
通过Node类的两个方法, 来完成查找:
(Node是 Document 与 Element 的父接口)
方法1.
//根据路径表达式, 查找匹配的单个节点
Element e = selectSingleNode("路径表达式");
方法2.
List<Element> es = selectNodes("路径表达式");
案例:
String phone = "18313935565";//1. 获取到XML资源的输入流URL url = new URL("http://apis.juhe.cn/mobile/get?phone="+phone+"&dtype=xml&key=9f3923e8f87f1ea50ed4ec8c39cc9253");URLConnection conn = url.openConnection();InputStream is = conn.getInputStream();//2. 创建一个XML读取对象SAXReader sr = new SAXReader();//3. 通过读取对象 读取XML数据,并返回文档对象Document doc = sr.read(is);Node node = doc.selectSingleNode("//company");System.out.println("运营商:"+node.getText());is.close();
2.JSON
2.1 概念
JSON是一种轻量级的数据交换格式
2.2 语法
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":"种苹果"}
eg.JSON中,一个对象, 由一个大括号表示.JSON格式{"name":"金苹果","info":"种苹果"}
括号中 描述对象的属性 . 通过键值对来描述对象的属性
3.Java与JSON
3.1 Gson
3.1.1 将对象转换为JSON字符串
Book b = BookDao.find();String json = new Gson().toJson(b);System.out.println(json);
3.1.2 将JSON字符串转换为对象
String json = "{\"id\":1,\"name\":\"金苹果\",\"author\":\"李伟杰\",\"info\":\"嘿嘿嘿嘿嘿嘿\",\"price\":198.0}";Book book = new Gson().fromJson(json, Book.class);System.out.println(book);3.2 FastJson
3.2.1 将对象转换为JSON字符串
转换JSON字符串的步骤:
Book b = BookDao.find();String json=JSON.toJSONString(b);System.out.println(json);
3.2.2 将JSON字符串转换为对象
String json = "{\"id\":1,\"name\":\"金苹果\",\"author\":\"李伟杰\",\"info\":\"嘿嘿嘿嘿嘿嘿\",\"price\":198.0}";Book book = JSON.parseObject(json, Book.class);System.out.println(book);