八、JSON
目录:JSON简介、Controller返回JSON数据、FastJson
1.JSON简介
1)简介
JSON(JavaScript Object Notation,JS 对象标记)是一种轻量级的数据交换格式,目前使用特别广 泛。
采用完全独立于编程语言的文本格式来存储和表示数据。
简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。
易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
在JavaScript语言中,一切都是对象。因此,任何JavaScript 支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。看看他的要求和语法格式:、对象表示为键值对,数据由逗号分隔、花括号保存对象、方括号保存数组。
JSON键值对是用来保存 JavaScript 对象的一种方式,和 JavaScript 对象的写法也大同小异,键值对组合中的键名写在前面并用双引号""包裹,使用冒号:分隔,然后紧接着值。
例:
{
"name": "Ping"}
{
"age": "20"}
{
"sex": "男"}
JSON和JavaScript对象的关系:JSON是JavaScript对象的字符串表示法,它使用文本表示一个JS对象的信息,本质是一个字符串。
var obj = {
a: 'Hello', b: 'World'}; //这是一个对象,键名是可以使用引号包裹的
var json = '{"a": "Hello", "b": "World"}'; //这是一个JSON字符串,本质就是一个字符串
2)JSON和JavaScript对象互转
①要实现从JSON字符串转换为JavaScript对象,使用JSON.parse()方法。
var obj = JSON.parse('{"a": "Hello", "b": "World"}');
结果:{a: ‘Hello’, b: ‘World’}
②要实现从JavaScript对象转换为JSON字符串,使用JSON.stringify()方法。
var json = JSON.stringify({
a: 'Hello', b: 'World'});
结果:‘{“a”: “Hello”, “b”: “World”}’
3)代码测试
①新建一个module,添加web app的支持。
②在web目录下新建一个json.html,编写测试的内容。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JSON</title>
</head>
<body>
<script type="text/javascript">
//编写一个js的对象
var user = {
name:"Ping", age:20, sex:"男" };
//将js对象转换成json字符串
var str = JSON.stringify(user);
console.log(str);
//将json字符串转换为js对象
var user2 = JSON.parse(str);
console.log(user2.name,user2.age,user2.sex);
</script>
</body>
</html>
③在IDEA中使用浏览器打开,查看控制台输出。
结果:
{“name”:“Ping”, “age:20”, “sex”:“男” }
“Ping” 20 “男”
2.Controller返回JSON数据
Jackson应该是目前比较好的json解析工具了。当然工具不止这一个,比如还有阿里巴巴的fastjson等等。
1)代码实现
①这里使用Jackson,使用它需要导入它的jar包。
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.4</version>
</dependency>
②配置SpringMVC需要的配置。
Ⅰweb.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--注册servlet-->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet- class>org.springframework.web.servlet.DispatcherServlet</servlet-class