一、概述

不同格式的JSON串传到后台来实现功能这个是我们经常要做的一件事,本篇博客就给大家介绍四种不同的JSON串传到后台后台如何用@RequestBody解析这些不同格式的JSON串的。

二、代码展示

需要引用的jar包

1.xml配置

Web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>*.spring</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>
</web-app>

springMVC-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:mvc="http://www.springframework.org/schema/mvc" 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"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"><context:component-scan base-package="com.gaowei.JSON" /><mvc:annotation-driven /></beans>

2.java代码

Userinfo.java

package com.gaowei.entity;public class Userinfo {private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}

Test.java

package com.gaowei.JSON;import java.util.ArrayList;
import java.util.List;
import java.util.Map;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;import com.gaowei.entity.Userinfo;@Controller
public class Test {@RequestMapping(value="getJSON1")public void getJSON1(@RequestBody Userinfo userinfo){System.out.println("------getJSON1---start----");System.out.println(userinfo.getUsername());System.out.println(userinfo.getPassword());System.out.println("------getJSON1---end----");}@RequestMapping(value="getJSON2")public void getJSON2(@RequestBody ArrayList<String> list){System.out.println("------getJSON2---start----");for (int i = 0; i < list.size(); i++) {System.out.println(list.get(i));}System.out.println("------getJSON2---end----");}@RequestMapping(value="getJSON3")public void getJSON3(@RequestBody List<Map> list){System.out.println("------getJSON3---start----");for (int i = 0; i < list.size(); i++) {Map map=list.get(i);System.out.println(map.get("username")+" "+map.get("password"));}System.out.println("------getJSON3---end----");}@RequestMapping(value="getJSON4")public void getJSON4(@RequestBody Map map){System.out.println("------getJSON4---start----");System.out.println(map.get("username"));List<Map> workList=(List)map.get("work");for (int i = 0; i < workList.size(); i++) {Map eachAddressMap=workList.get(i);System.out.println("address="+eachAddressMap.get("address"));}Map schoolMap=(Map)map.get("school");System.out.println(schoolMap.get("name"));System.out.println(schoolMap.get("address"));System.out.println("------getJSON4---end----");}
}

3.界面代码

Test.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><script src="jquery-1.3.2.js"></script><script src="json2.js"></script><script>function userinfo(username, password){this.username = username;this.password = password;}function sendAjax1(){var userinfoRef = new userinfo('中国', '中国人');var jsonStringRef = JSON.stringify(userinfoRef);$.ajax({type: "POST",data: jsonStringRef,url: "getJSON1.spring?t=" + new Date().getTime(),contentType: "application/json"});}function sendAjax2(){var myArray =new Array();myArray[0]="中国1";myArray[1]="中国2";myArray[2]="中国3";myArray[3]="中国4";var jsonString=JSON.stringify(myArray);$.ajax({type: "POST",data: jsonString,url: "getJSON2.spring?t=" + new Date().getTime(),contentType: "application/json"});}function sendAjax3(){var myArray=new Array();myArray[0]= new userinfo('中国1', '中国人1');myArray[1]= new userinfo('中国2', '中国人2');myArray[2]= new userinfo('中国3', '中国人3');myArray[3]= new userinfo('中国4', '中国人4');var jsonString=JSON.stringify(myArray);$.ajax({type: "POST",data: jsonString,url: "getJSON3.spring?t=" + new Date().getTime(),contentType: "application/json"});}function sendAjax4(){var jsonObject={"username":"accp","work":[{"address":"address1"},{"address":"address2"   }],"school":{"name":"tc","address":"pjy"}}var jsonString=JSON.stringify(jsonObject);$.ajax({type: "POST",data: jsonString,url: "getJSON4.spring?t=" + new Date().getTime(),contentType: "application/json"});}</script></head><body><input type="button" οnclick="sendAjax1()" value="sendAjax1"/><br/><input type="button" οnclick="sendAjax2()" value="sendAjax2"><br/><input type="button" οnclick="sendAjax3()" value="sendAjax3"><br/><input type="button" οnclick="sendAjax4()" value="sendAjax4"><br/></body>
</html>

4.效果图

三、总结。

这里要注意jar包的引用不要把Spring的所有jar包都引用了会引起jar包冲突而导致报HTTP 415的错误。@RequestBody这个方法很强大可以把JSON串转化为实体类、ArryList、Map等对象。这样的方法让我们开发人员开发效率大大的提高了

转载于:https://www.cnblogs.com/iplus/p/4490353.html

菜鸟学习Spring——SpringMVC注解版解析不同格式的JSON串相关推荐

  1. 菜鸟学习Spring——60s配置XML方法实现简单AOP

    一.概述. 上一篇博客讲述了用注解的形式实现AOP现在讲述另外一种AOP实现的方式利用XML来实现AOP. 二.代码演示. 准备工作参照上一篇博客<菜鸟学习Spring--60s使用annota ...

  2. 我该如何学习spring源码以及解析bean定义的注册

    如何学习spring源码 前言 本文属于spring源码解析的系列文章之一,文章主要是介绍如何学习spring的源码,希望能够最大限度的帮助到有需要的人.文章总体难度不大,但比较繁重,学习时一定要耐住 ...

  3. 学习:springMVC注解

    引言 在项目中,组长说我们的@Autowired注解都是黄的 后来,组长说加上@SuppressWarnings来抑制警告信息 @SuppressWarnings 注解目标 其注解目标为类.字段.函数 ...

  4. Spring 定时任务 注解版

    Task类: ManageSql.Java对应代码: [java] view plain copy   package com.axb.cheney.task; import java.sql.Res ...

  5. Spring+SpringMVC+Mybatics配置文件解析

    Spring-config.xml <?xml version="1.0" encoding="UTF-8"?><beans xmlns=&q ...

  6. 菜鸟学习 8-3 SpringMVC 入门案例的一些深入

    入门案例的一些深入 一.@RequestMapping注解的详解 1)该注解可以放在方法上,也可以放在类上,放在方法上用于给方法确定路径和加限制条件,放在类上用于给类确定路径,如果类和方法上都有,在请 ...

  7. 菜鸟学习Spring——60s利用JoinPoint获取參数的值和方法名称

    一.概述 AOP的实现方法在上两篇博客中已经用了两种方法来实现如今的问题来了尽管我们利用AOP,那么client怎样信息传递?利用JoinPoint接口来实现client给详细实现类的传递參数. 二. ...

  8. 菜鸟学习Spring——初识Spring

    一.概念. Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Develop ...

  9. SpringMVC注解@RequestParam解析

    1.可以对传入参数指定参数名 1 @RequestParam String inputStr 2 // 下面的对传入参数指定为param,如果前端不传param参数名,会报错 3 @RequestPa ...

最新文章

  1. 猫和老鼠服务器维修有问题,猫和老鼠:游戏中大范围的断网掉线问题 玩家:土豆服务器就这样...
  2. 用NFS挂载root出现:NFS: failed to create MNT RPC client, status=-101(-110)
  3. 区块链研究生专业_滁州区块链平台技术开发专业软件公司
  4. ermaster连接oracle数据库表,window连接远程服务器报函数不支持之解决方案
  5. 读取 wav 格式声音文件
  6. 转:计算机视觉专业词汇(中英文对照)
  7. 第一章:状态化流处理概述
  8. 【爬虫】抓取msdn.itellyou.cn所有操作系统镜像下载链接
  9. Youtube 开发通过遥控机控制实现快进快退功能
  10. DialogFragment dismiss闪退异常DialogFragment何时持有FragmentManager
  11. 【修真院java小课堂】代码生成
  12. CVF 6.6B 安装无反应(响应)及打开无反应(响应)问题(win10系统)
  13. 解决或者设置网页变灰-CSS-filter属性-哀悼
  14. 有助于睡眠的15首歌曲,听着最容易入睡的歌曲推荐
  15. php网站怎么给文件设置颜色,配置区块和文件颜色
  16. 《NAO机器人程序设计》---第四章 运动控制
  17. mongod.conf
  18. Python基础(三)Python容器:列表、元组、字典和集合
  19. 电池配置(串联和并联)及其保护
  20. python effective 骚操作

热门文章

  1. router优点 vue_Vue 出场率99%的面试题
  2. [leetcode双周赛]5311. 将数字变成 0 的操作次数
  3. 图论---桥(割边)
  4. C++字符串输入输出转换
  5. bzoj 1688: [Usaco2005 Open]Disease Manangement 疾病管理(状压)
  6. [Markdown] Markdown使用 - 持续更新
  7. hadoop相关问题
  8. Python爬虫解析htm时lxml的HtmlElement对象获取和设置inner html方法
  9. 2017-2018-1 20155213 20155303 实验二 固件程序设计
  10. 痴情研究java内存中的对象