JSON交互处理

本文介绍了JSON在前后端交互中的重要性,详细讲解了JSON的格式和与JavaScript对象的关系。接着,通过Java的SpringMVC框架,展示了使用Jackson和FastJson处理Controller返回的JSON数据,包括解决乱码和时间格式化的问题。最后,通过代码测试演示了如何使用FastJson进行JSON转换。
摘要由CSDN通过智能技术生成

前瞻:

前后端分离时代

  • 前端:独立部署,负责渲染后端数据

json连接起来(它是一种格式)

  • 后端:部署后端,提交接口,提供数据

1、什么是JSON

  • JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛

  • 采用完全独立于编程语言的文本格式来存储和表示数据

  • 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言

  • 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率

        (1)JSON 键值对是用来保存 JavaScript 对象的一种方式,和 JavaScript 对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着值:

        {"name":"土土","age":12,"sex":"男"}

        (2)很多人搞不清楚 JSON 和 JavaScript 对象的关系,甚至连谁是谁都不清楚。其实,可以这么理解:JSON 是 JavaScript 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串

  • var obj = {a: 'Hello', b: 'World'}; //这是一个对象,注意键名也是可以使用引号包裹的
  • var json = '{"a": "Hello", "b": "World"}'; //这是一个 JSON 字符串,本质是一个字符串

        (3)在 JavaScript 语言中,一切都是对象。因此,任何JavaScript 支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。看看他的要求和语法格式:

  • 对象表示为键值对,数据由逗号分隔

  • 花括号保存对象

  • 方括号保存数组

JSON 和 JavaScript 对象互转

  • 要实现从JSON字符串转换为JavaScript 对象,使用 JSON.parse() 方法
  • 要实现从JavaScript 对象转换为JSON字符串,使用 JSON.stringify() 方法
  • script必须成对出现 不能够<script/>

测试:

1、新建一个module ,springmvc-05-json , 添加web的支持

(2)创建一个jesontest.html

(3)编写html  

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <script type="text/javascript">

        //编写一个javascript对象,ES6
        var user = {
            name: "山姆",
            age: 3,
            sex: "男"
        };

        //    将js对象转换为json对象;
        var json = JSON.stringify(user);
        //打印
        console.log(json);

        console.log("=====================")

        //    将JSON对象转换为JavaScript对象
        var obj = JSON.parse(json);
        console.log(obj);

    </script>


</head>
<body>

</body>
</html>

(4)网站查看输出结果:


2、Controller返回json数据

2.1、Jackson

  • Jackson应该是目前比较好的json解析工具了
  • 当然工具不止这一个,比如还有阿里巴巴的 fastjson 等等。

Jackson

(1)导包

        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.13.3</version>
        </dependency>

        <!-- 实体类用到,这里一起导入 -->
        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
        </dependency>

(2)配置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">

    <!--1.注册servlet-->
    <servlet>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--通过初始化参数指定SpringMVC配置文件的位置ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值