XML与JSON

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":"种苹果"
}
 
JSON格式
{
"name":"金苹果",
"info":"种苹果"
}
eg.JSON中,一个对象, 由一个大括号表示.
括号中 描述对象的属性 . 通过键值对来描述对象的属性

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);
 
 
 
 
 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值