JSON
1、什么是JSON?
JSON(Java Script Object Notation,JavaScript 对象表示法)
1)是一种轻量级的文本数据交换格式,易于机器解析和生成
2)是一种传递对象的语法,成为服务器与 Web 应用之间数据传输的公认标准
2、JSON VS XML?
1)服务器端和客户端都要花费大量资源和时间来解析XML
2)XML文档难以理解DTD、XSD、XPath等一大堆规范
3)JSON 比 XML 更小、更快,更易解析
3、JSON语法
JSON 数据由键值对构成,多个键值对由逗号分隔。
花括号保存对象:使用 { } 定义 json 格式
中括号保存数组:[ ]
数组元素用逗号隔开,名称和值用冒号隔开
//注意:json格式key部分必须加" ",value部分看属性类型,非字符串不用加" "
{
"skillz": {
"web": [
{
"name": "html",
"years": "5"
},
{
"name": "css",
"years": "3"
}
],
"database": [
{
"name": "sql",
"years": "7"
}
]
}
}
4、JSON对象和Java对象的相互转换
Q:为什么要进行转换呢?
A:将 JSON 对象当做数据的载体在网络中进行传输,因为 JSON 比 XML 更小、更快,更易解析。
4.1 Java 对象转换为 JSON
服务器端获取了数据,想将这些数据发送到客户端,可以将 java 对象转为 json 对象再发送到客户端,通过客户端的 js 代码对 json 数据进行处理和解析或 ajax 解析 json 数据。
使用步骤:
1)导入 jackson 相关 jar 包
2)创建 jackson 核心对象 ObjectMapper
3)调用 ObjectMapper 相关方法进行转换
writeValue(参数1,obj):
参数1:
* File:将obj对象转换为JSON字符串,并保存到指定的文件中
* Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
* OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
writeValueAsString(obj):将obj对象转为json字符串
//演示:Java对象转为JSON
@Test
public void test4() throws Exception {
//1.创建map对象
Map<String,Object> map = new HashMap