文档章节

springmvc - json的数据交互

lemos
 lemos
发布于 2016/11/21 00:23
字数 523
阅读 39
收藏 0

一、为什么使用 json

json 数据格式在接口调用中、html页面中较常用,json数据结构简单,解析方便。 比如,webservice接口,传输json数据。

二、springmvc 中进行json交互

输入图片说明

1.请求的是json串、输出json串,在前端需要将请求的内容转换成json串,不太方便。
2.请求的是key/value、输出json串,此方法较常用。

三、.配置json转换器

注意:如果使用的是注解驱动标签,则不需要手动配置:

<mvc:annotation-driven conversion-service="conversionService" validator="validator"/> 

否则,需要在注解适配器中加入messageConverters。

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    <property name="messageConverters">
        <list>
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
        </list>
    </property>
</bean>

四、json交互测试

jsonTest.jsp

<html>
<head>
    <title>json交互测试</title>
    <%-- 导入js外部文件 --%>
    <script language="JavaScript" src="${pageContext.request.contextPath}/js/jquery-1.4.4.min.js"></script>
    <%-- 自定义js函数--%>
    <script language="JavaScript">
        function requestJson() {
            $.ajax({
                type: 'post',
                url: '${pageContext.request.contextPath}/requestJson.action',
                contentType: 'application/json;charset=utf-8',
                data: '{"name":"手机","price":999}',
                success: function (data) {
                    alert(data.name);
                }
            });
        }

        function responseJson() {
            $.ajax({
                type: 'post',
                url: '${pageContext.request.contextPath}/responseJson.action',
                data: 'name=手机&price=999',
                success: function (data) {
                    alert(data.name);
                }
            });
        }
    </script>
</head>
<body>
<input type="button" onclick="requestJson()" value="请求json,输出json"/>
<input type="button" onclick="responseJson()" value="请求key/value,输出json"/>
</body>
</html>

jsonTest.java

@Controller
public class JsonTest {

    //第一个@ResponseBody,将页面商品信息的json转成itemsCustom对象
    //第二个@ResponseBody,把返回的itemsCustom对象转成json串输出。
    @RequestMapping("requestJson")
    public @ResponseBody ItemsCustom requestJson(@RequestBody ItemsCustom itemsCustom) {
        return itemsCustom;
    }

    //输入是key/value ,输出是 json数据
    @RequestMapping("responseJson")
    public @ResponseBody ItemsCustom responseJson(ItemsCustom itemsCustom) {
        return itemsCustom;
    }
}

区别

  1. application/x-www-form-urlencoded, 可选(即非必须,因为这种情况的数据@RequestParam, @ModelAttribute也可以处理,当然@RequestBody也能处理);
  2. multipart/form-data, 不能处理(即使用@RequestBody不能处理这种格式的数据);
  3. 其他格式, 必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);

**测试结果: **

1.使用jquery 的ajax 提交json串,对输出的json结果进行解析。

json 请求参数:
json请求参数

json 响应参数:
json响应参数

2.使用jquery 的ajax 提交key/value 串,对输出的json结果进行解析。

key/value 请求参数:
key/value 请求参数

json 响应参数:
json响应参数

© 著作权归作者所有

共有 人打赏支持
上一篇: springmvc - RESTful
lemos
粉丝 8
博文 184
码字总数 92482
作品 0
芜湖
后端工程师
私信 提问
Spring Boot 返回 JSON 数据,一分钟搞定!

在 WEB 项目中返回 JSON 数据是常见的交互形式,在 Spring Boot 中这一切都变得十分简单。So easy!!! 你所需具备的基础 什么是 Spring Boot? Spring Boot 核心配置文件详解 Spring Boot 开启...

Java技术栈
2018/12/14
0
0
SpringMVC+Spring+Mybatis整合应用(3)

实现图片上传 需求:在用户注册页面实现上传图片作为用户头像 1. springmvc中对多部件类型请求数据解析:在页面form中提交enctype="multipart/form-data"的数据时,需要springmvc对multipart...

江左煤郎
2018/12/03
0
0
Android四款系统架构工具

Spring for Android   Spring for Android是Spring框架在Android平台上的扩展,旨在简化Android原生应用的开发流程,提高开发者的工作效率。Spring for Android可以帮助开发者简化应用与服...

zhwj407906450
2014/10/21
0
0
AJAX与spring mvc交互

(1)简单交互: <table style="width: 100%" class="table" cellspacing="1" cellpadding="1" border="0"> <tr><td class="ti1" colSpan="2">请选择审讯室</td></tr> <tr><td class="ti2hu......

moz1q1
2014/08/28
0
0
项目开发总结

项目开发关键词: (设计层面) : 表设计 表间关系设计 (技术层面) : 不同数据类型的获取,转换,传递(字符型 , 数值型 , 日期型 , 文件型 ) 前端:(不同数据类型(字符型 , 数值型 , 日期型 , 文件...

noteman
2015/12/16
35
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 孤独到都和病毒发生了感情了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @-冰冰棒- :#今日歌曲推荐# 逃跑计划《一万次悲伤 (Live)》 《一万次悲伤 (Live)》- 逃跑计划 手机党少年们想听歌,请使劲儿戳(这里) 现在...

小小编辑
48分钟前
18
5
test

//// main.c// Test//// Created by 吕颖 on 2019/1/16.// Copyright © 2019年 carmen. All rights reserved.//#include <stdio.h>#include <stdlib.h>#include <t......

carmen-ly
今天
3
0
Android webview热门组件agentweb:4.0.2无法自适应的问题

Android webview热门组件agentweb:4.0.2无法自适应的问题 //设置自适应屏幕,两者合用mAgentWeb.getAgentWebSettings().getWebSettings().setUseWideViewPort(true); //将图片调整到适合w...

Gemini-Lin
今天
5
0
如何维护一个自己的 golang doc 服务

本文内容是如何维护一个golang 在线的doc 服务。 1 什么是godoc ? godoc 是 golang 官方提供的文档生成工具, 2 为什么要有godoc ? 我们经常遇到一个问题,就是代码和文档不一致,线上代码版...

鼎铭
今天
5
0
js中的对象创建的模式以及继承模式

对象创建模式: 工厂模式 构造函数模式 原型模式 继承模式 原型式继承 寄生式继承 构造函数 原型式和构造函数的组合式(缺点:运行两次超类类函数,积累函数的属性被挂载在原型对象上和实例对...

莫西摩西
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部