SpringMVC--JSON数据交互(附带实例)

SpringMVC【JSON数据交互】 文章目录响应JSON数据【jackjson】添加依赖:springmvc.xmlweb.xmluser.jspHelloController.java接收JSON数据额外说明:fastjsonspring框架提供的字符集过滤器在web.xml文件中加过滤器 响应JSON数据【jackjson】 添加依赖: 对于Gson和jackson这两个json处理依赖,直接添加即可。 除此之外,其他的jso... 阅读详情
JSON 概述

JSON(JavaScript Object Notation, JS 对象标记)是一种轻量级的数据交换格式。与 XML 一样,JSON 也是基于纯文本的数据格式。它有对象结构和数组结构两种数据结构。

1)对象结构
对象结构以“{”开始、以“}”结束,中间部分由 0 个或多个以英文“,”分隔的 key/value 对构成,key 和 value 之间以英文“:”分隔。对象结构的语法结构如下:

{
    key1:value1,
    key2:value2,
    ...
}

其中,key 必须为 String 类型,value 可以是 String、Number、Object、Array 等数据类型。例如,一个 person 对象包含姓名、密码、年龄等信息,使用 JSON 的表示形式如下:

{
    "pname":"张三",
    "password":"123456",
    "page":40
}

2)数组结构
数组结构以“[”开始、以“]”结束,中间部分由 0 个或多个以英文“,”分隔的值的列表组成。数组结构的语法结构如下:

{
    value1,
    value2,
    ...
}

上述两种(对象、数组)数据结构也可以分别组合构成更加复杂的数据结构。例如,一个 student 对象包含 sno、sname、hobby 和 college 对象,其 JSON 的表示形式如下:

{
    "sno":"201802228888",
    "sname":"张三",
    "hobby":["篮球","足球"],
    "college":{
        "cname":"清华大学",
        "city":"北京"
    }
}
JSON 数据转换

为实现浏览器与控制器类之间的 JSON 数据交互,Spring MVC 提供了 MappingJackson2HttpMessageConverter 实现类默认处理 JSON 格式请求响应。该实现类利用 Jackson 开源包读写 JSON 数据,将 Java 对象转换为 JSON 对象和 XML 文档,同时也可以将 JSON 对象和 XML 文档转换为 Java 对象。

在使用注解开发时需要用到两个重要的 JSON 格式转换注解,分别是 @RequestBody 和 @ResponseBody。

  • @RequestBody:用于将请求体中的数据绑定到方法的形参中,该注解应用在方法的形参上。
  • @ResponseBody:用于直接返回 return 对象,该注解应用在方法上。
JSON 数据转换

为实现浏览器与控制器类之间的 JSON 数据交互,Spring MVC 提供了 MappingJackson2HttpMessageConverter 实现类默认处理 JSON 格式请求响应。该实现类利用 Jackson 开源包读写 JSON 数据,将 Java 对象转换为 JSON 对象和 XML 文档,同时也可以将 JSON 对象和 XML 文档转换为 Java 对象。

在使用注解开发时需要用到两个重要的 JSON 格式转换注解,分别是 @RequestBody 和 @ResponseBody。

  • @RequestBody:用于将请求体中的数据绑定到方法的形参中,该注解应用在方法的形参上。
  • @ResponseBody:用于直接返回 return 对象,该注解应用在方法上。
示例

1)创建应用并导入相关 JAR 包

2)配置 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>SpringMVCForm</display-name>
  
  <!--避免中文乱码-->
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>
             org.springframework.web.filter.CharacterEncodingFilter
        </filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    
    <servlet>
	  	<servlet-name>springmvc</servlet-name>
	  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	  	<!-- 默认找 /WEB-INF/[servlet的名称]-servlet.xml -->
	  	<init-param>
	  		<param-name>contextConfigLocation</param-name>
	  		<param-value>classpath:springmvc-servlet.xml</param-value>
	  	</init-param>
  	</servlet>
  	<servlet-mapping>
  		<servlet-name>springmvc</servlet-name>
  		<url-pattern>*.action</url-pattern>
  	</servlet-mapping>
</web-app>

3)配置 Spring MVC 的核心配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

        
        
        <!-- 扫描@Controler  @Service   -->
        <context:component-scan base-package="pers.zhang"/>
        
        <!-- 注解驱动 -->
        <mvc:annotation-driven/>
        
    	<mvc:resources location="/jsp/" mapping="/jsp/**"/>   
 		<mvc:resources location="/js/" mapping="/js/**"/>    
 		<mvc:resources location="/css/" mapping="/css/**"/>  
        
        <!-- 视图解释器 -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        	<property name="prefix" value="/WEB-INF/jsp/"/>
        	<property name="suffix" value=".jsp"/>
        </bean>
        
   </beans>

4)创建 POJO 类

package pers.zhang.pojo;

public class Person {
    private String pname;
    private String password;
    private Integer page;
    
	public String getPname() {
		return pname;
	}
	public void setPname(String pname) {
		this.pname = pname;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Integer getPage() {
		return page;
	}
	public void setPage(Integer page) {
		this.page = page;
	}


    
}

5)创建 JSP 页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<script type="text/javaScript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.min.js"></script>
</head>
<body>
    <form action="">
        用户名:<input type="text" name="pname" id="pname" /><br> 
        密码:<input type="password" name="password" id="password" /> <br> 
        年龄:<input type="text" name="page" id="page"><br> 
        <input type="button" value="测试" onclick="testJson()" />
    </form>
</body>
<script type="text/javaScript">
    function testJson() {
        //获取输入的值pname为id
        alert($("#pname").val());
        var pname = $("#pname").val();
        var password = $("#password").val();
        var page = $("#page").val();
        $.ajax({
            //请求路径
            url : "${pageContext.request.contextPath }/testJson.action",
            //请求类型
            type : "post",
            //data表示发送的数据
            data : JSON.stringify({
                pname : pname,
                password : password,
                page : page
            }), //定义发送请求的数据格式为JSON字符串
            contentType : "application/json;charset=utf-8",
            //定义回调响应的数据格式为JSON字符串,该属性可以省略
            dataType : "json",
            //成功响应的结果
            success : function(data) {
                if (data != null) {
                    alert("输入的用户名:" + data.pname + ",密码:" + data.password
                            + ", 年龄:" + data.page);
                }
            }
        });
    }
</script>
</html>

6)创建控制器类

package pers.zhang.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import pers.zhang.pojo.Person;

@Controller
public class TestController {
    /**
     * 接收页面请求的JSON参数,并返回JSON格式的结果
     */
    @RequestMapping("testJson.action")
    @ResponseBody
    public Person testJson(@RequestBody Person user) {
        // 打印接收的JSON格式数据
        System.out.println("pname=" + user.getPname() + ",password="
                + user.getPassword() + ",page=" + user.getPage());
        ;
        // 返回JSON格式的响应
        return user;
    }
}

7)运行 index.jsp 页面,测试程序
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

【SpringMVC】五、Json数据交互 Json乱码处理 Jackson Fastjson【狂神篇】 这里是小编拿到的学习资源,其中包括“中高级Java开发面试高频考点题笔记300道.pdf”和“Java核心知识体系笔记.pdf”文件分享,内容丰富, 阅读详情

相关推荐

DIY必备:如何用N-MOS管搭建低成本DC有刷电机驱动电路(附原理图+避坑指南)

本文详细介绍了如何使用N-MOS管搭建低成本、高可靠性的DC有刷电机驱动电路。针对DIY爱好者,从核心原理、电路设计、元件选型到焊接调试,提供了完整的实战指南,并重点解析了续流二极管选型、栅极驱动设计等关键避坑要点,帮助读者成功驱动电机并确保电路稳定运行。

delta的博客 774

spring boot 基于Web输出json格式配置的简单输出

最近要用用Jackson的地方比较多,所以练习一个简单的案例。 首先,描绘出思维导图。 看完,那我们开始吧。 IDEA开启springboot后,POM配置加入依赖。 写model类,City(城市),此处id不输出JSON,城市有名字和人口两个属性。 然后写service接口和接口实现类. 接口实现类,添加了几个城市。 然后写jackson的配置类,可以控制json输出格式,格式怎样看结果,最严谨就看手册源码,采用了配置注解。 接下来,Controller类写上。注入了Service,简单起见,

foxirensheng的博客 583

08-SD卡-TF卡硬件电路设计

SD卡-TF卡硬件电路设计

weixin_66510961的博客 8258

springmvc进行Json数据交互

1.1     为什么要进行json数据交互 json数据格式在接口调用中、html页面中较常用,json格式比较简单,解析还比较方便。 比如:webservice接口,传输json数据. 1.2     springmvc进行json交互 1、请求json、输出json,要求请求的是json串,所以在前端页面中需要将请求的内容转成json,不太方便。 2、请求key/val

NLPLAB的专栏 982

windows的rancherDesktop修改镜像源

Rancher Desktop中的“Allowed Images”功能(通常在 Preferences -> Container Engine -> Allowed Images 中找到)是用来定义一个允许拉取和推送的镜像列表的规则,例如,只允许从您组织或特定的受信任的仓库中获取镜像。如果问题依旧,请提供您Rancher Desktop的版本和当前选择的容器运行时,以便进一步协助。总结一下,对于Windows上的Rancher Desktop,如果您使用默认的。,镜像源的配置通常通过一个名为。

zwjapple的专栏 2695

【首份】2023年30米分辨率土地利用遥感监测数据

为了恢复和重建我国土地利用变化的现代过程,更好地预测、预报土地利用变化趋势,地球资源数据云以美国陆地卫星Landsat 遥感影像数据作为主信息源,结合Sentinel系列数据,通过人工目视解译和机器学习方法,建立了国家尺度1:10 万比例尺多时期土地利用/土地覆盖遥感监测数据库(CNLUCC)因早期Landsat数据时空覆盖缺失,1972-1977年合成第一期数据,1978-1985年合成第二期数据,1986年起每年度生成一期数据。投影:Albers正轴等面积双标准纬线圆锥投影南标准纬线:25°N。

地球资源数据云的官方博客 3669

(转)SpringMVC学习(十)——SpringMVC与前台的json数据交互

http://blog.youkuaiyun.com/yerenyuan_pku/article/details/72514022 json数据格式在接口调用中、html页面中比较常用,json格式比较简单,解析也比较方便,所以使用很普遍。在SpringMVC中,也支持对json数据的解析和转换,这篇文章主要总结一下在SpringMVC中如何和前台交互json数据。 两种交互形式 Spring...

4464

SEED-VII 实战指南:如何利用多模态脑电图数据提升情感识别精度

本文提供了SEED-VII多模态脑电图数据集的实战指南,详细介绍了如何利用该数据集提升情感识别精度。内容涵盖数据获取、预处理、特征提取,以及构建多模态融合神经网络模型的关键步骤,并强调了被试者独立评估的重要性,为情感计算研究者提供了从数据到模型的全流程解决方案。

weixin_29196891的博客 316

SpringMVC-14-JSON数据交互

SpringMVC-14-JSON数据交互

时光 394

微信小程序 - 强力解决wx.getLocation定位不准的问题,如何修正微信小程序wx.getLocation获取用户位置信息不准确解决办法(高精度定位还是不够精准,定位不准有偏差,彻底消除误差)

如何解决getLocation定位偏差的问题?微信小程序API—wx.getLocation定位不准的问题,微信小程序wx.getLocation获取用户位置信息不准确解决办法,解决微信小程序wx.getLocation定位不准的问题,定位不准确,实际位置偏差大,相差几公里,微信小程序wx.getLocation获取用户位置信息不准确解决办法,关于微信小程序获取准确定位的方法及解决定位不准确的问题,偏差太多好几百米,wx.getLocation 返回定位精度不准问题,如何消除这个误差,开启高精度定位依旧有误

🏆 前端领域优质创作者 1万+

看28377代码笔记

使用的是20MHz外部晶振,为取200MHz系统时钟,倍频设为20,分频设为2,这样sysclock = 20MHz * 20 / 2,正好200MHz。注意:SPISTE配置成普通的GPIO端口,是为了更好控制芯片,配置芯片的时序。FMULT_0:小数点位数,小数只能有0,0.25,0.5,0.75四个选择。XTAL_OSC:表示使用外部晶振。GPIO_MUX_CPU1:复用类型。GPIO_MUX_CPU1:复用类型。PLLCLK_BY_2:表示2分频。IMULT_20:表示倍频数。

小柚子的博客 805

【SpringMVC】使用SpringMVC处理JSON格式的数据

我们在使用Servlet处理前端请求,使用Json格式的数据,通常引入外部提供的一些jar包来将我们的其他格式的数据转换成Json格式,最终返回给前端。但在SpringMVC中如何返回Json格式的数据,这将是这节我们需要探讨的问题❓。

喃灬疯的博客 1366

海康Visionmaster-通讯管理:使用 Modbus TCP 通讯 协议与流程交互

海康Visionmaster-通讯管理:使用 Modbus TCP 通讯 协议与流程交互

视觉人机器视觉的博客 9174

Spring MVC JSON数据交互(附带实例)

Spring MVC 在数据绑定的过程中需要对传递数据的格式和类型进行转换,它既可以转换 String 等类型的数据,也可以转换 JSON 等其他类型的数据。本节将针对 Spring MVC 中 JSON 类型的数据交互进行讲解。 JSON 概述 JSON(JavaScript Object Notation, JS 对象标记)是一种轻量级的数据交换格式。与 XML 一样,JSON 也是基于纯文本的数据格式。它有对象结构和数组结构两种数据结构。 1)对象结构 对象结构以“{”开始、以“}”结束,中间部分由

qq_44336097的博客 1833

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SpringMVC | SpringMVC中的 “JSON数据交互“ 和 “RESTful设计风格“

目录: 一、JSON 数据交互 1.1 JSON概述 1.2 JSON的“数据结构” 对象结构 数组结构 1.3 JSON的“数据转换” 用 \的方式 来“自动配置” MappingJackson2HttpMessageConverter转换器 (来完成JSON数据转换) 用\标签方式的来“自行配置” JSON转换器配置MappingJackson2HttpMessageConverter转换器 (来完成JSON数据转换) .....

m0_70720417的博客 3059

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【SpringMVC】JSON数据交互详解

本文目录JSON简介响应JSON数据第一步:创建工程第二步:创建Controller第三步:测试运行接收JSON请求数据 JSON简介 JSON数据结构一种与开发语言无关的、轻量级的数据存储格式,全称JavaScript Object Notation,一种数据格式的标准规范,起初来源于JavaScript这门语言,后来随着使用的广泛,几乎每门开发语言都有处理JSON的API 。 优点:易于人的阅读和编写,易于程序解析与生产,它相比xml格式的数据结构,占用的数据控件更小。 响应JSON数据 目前Java有

lucashu的博客 1899

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【SpringMVC框架】SpringMVC中通过JSON进行数据交互

SpringMVC中通过JSON进行数据交互 JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 JSON的数据交互在前后端是比较通用的,在前后端分离开发中尤其重要。下面我们来看看JSON在Sp

Sampson_S的博客 331

SpringMVC中JSON数据交互

文章目录数据校验普通校验分组校验数据回写异常处理JSON数据交互响应JSON数据接收JSON数据 数据校验 为什么需要服务端校验?    最早的校验,就是服务端校验。早期的网站,用户输入一个邮箱地址,校验邮箱地址需要将地址发送到服务端,服务端进行校验,校验成功后,给前端一个响应。有了JavaScript,校验工作可以放在前端去执行。    那么为什么还需要服务端校验呢?    因为前端传来的数据...

虎啊兄弟的博客 254

SpringMVC快速入门第十讲——SpringMVC与前台的json数据交互

json数据格式在接口调用中、html页面中比较常用,json格式比较简单,解析也比较方便,所以使用很普遍。在SpringMVC中,也支持对json数据的解析和转换,这篇文章主要总结一下在SpringMVC中如何和前台交互json数据。两种交互形式SpringMVC和前台交互主要有两种形式,如下图所示: 可以看出,前台传过来的方式有两种,一种是传json格式的数据过来,另一种就是在url的末

李阿昀的博客 4910

SpringMVC中的JSON数据交互

文章目录一、JSON简介1、对象结构2、数组结构3、其它结构4、转换二、简单的使用1、导包2、在web.xml中配置3、配置springmvc4、创建pojo实体类5、创建json工具类6、创建controller类 一、JSON简介 前后端的数据交互,在开发中是一个十分重要且繁琐的问题,从之前的xml格式转变为现在的JSON格式,已经变得十分简单且实用! JSON(JavaScript Object Notation, JS 对象标记)是一种轻量级的数据交互格式,最近几年才流行起来,JSON是基于Java

二十四桥明月夜的博客 1358

SpringMVC之JSON数据交互

对于gson和jackson这两个json处理依赖,直接添加即可。 除此之外,其他的json解析器如fastjson都需要手动配置HttpMessageConverter. 实际上,在SpringMVC中,是由一个名叫HttpMessageConverter的类来提供对象到JSON字符串的转换的。而SpringMVC默认就提供了Gson和Jackson的HttpMessageConverter,分...

zhouym_的博客 417

【SpringMVC】——Json数据交互处理

【SpringMVC】——Json数据交互处理

shsjssnn的博客 2930

SpringMVC JSON数据交互

需求:获取浏览器文本框中输入的用户姓名,年龄,性别,前后端数据交互 1 JSON 简介 JSON(JavaScript Object Notation) 是一种基于字符串的轻量级的数据交换格式。易于人阅 读和编写,同时也易于机器解析和生成。JSON 是 JavaScript 数据类型的子集。 2 为什么要使用JSON 在 JSON 未出现之前在 Ajax 中对于数据传递方式,会使用 XML 作为主要数据格式来传 输数据。直到 JSON 出现后逐渐放弃使用 XML 作为数据传输格式。JSON 比 XM.

Autism_A的博客 393

SpringMVC 实现JSON数据交互、静态文件访问实例(IntelliJ IDEA)

1. JSON数据概述 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。 JSON采用完全独立于语言的文本格式,也就是说Json可以被任何语言解析。 JSON与XML相比较:JSON读写速度更快;JSON可以使用JavaScript内建的方法直接进行解析,转换成JavaScript对象。 JSON 详细介绍 (传送门,点击...

学习笔记 1534

SpringMVC(10)——JSON数据交互

概述 Spring MVC在数据绑定的过程中需要对传递数据的格式和类型进行转换,它既可以转换String等类型的数据,也可以转换JSON等其他类型的数据。 为实现浏览器与控制器类之间的JSON数据交互,SpringMVC提供了MappingJackson2HttpMessageConverter实现类默认处理JSON格式请求响应。该实现类利用Jackson开源包读写JSON数据,将Java对象...

二木成林 819
上一篇: SpringMVC--数据绑定和表单标签的应用(附带实例)
下一篇: SpringMVC--统一异常处理的3种方式(附带实例)
吴声子夜歌
博客等级 码龄9年 2687粉丝 2262原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值