SpringMVC返回JSON格式的数据:

  1 添加jar包(gson-2.8.0.jar):

        <dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.0</version>
</dependency>

   或者(jackson-databind-2.1.5.jar):

        <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.1.5</version>
</dependency>

   2 在controller中配置注解:   

      方法的返回值就是需要的对象

      @ResponseBody会自动调用包中的方法将数据转为json格式

    @ResponseBody
@RequestMapping(value="/users-json", method=RequestMethod.GET)
public Collection<User> listjson() {
//显示列表
return userDao.getAll();
}

SpringMVC返回JSONP格式的数据:

  1 使用gson

    js只有数组,数组具有所有集合的特性

    jquery实现jsonp环境:动态生成了一个script标签,将请求转发到远程地址

    script标签必须定义到callback方法后面

@RequestMapping(value="/users-jsonp", method=RequestMethod.GET)
public void listjson(String callback, HttpServletResponse response) throws IOException {
//显示列表
Collection<User> list = userDao.getAll();
Gson gson = new Gson();
String json = gson.toJson(list);
response.getWriter().println(callback + "(" + json + ")");
}
<script>
  function showdata(data){
   console.log(data);
  }
</script>
<script src="http://localhost:8080/springmvc-02-mvn/users-jsonp?callback=showdata">
</script>

  2 使用spring内置的处理方式:

@RequestMapping(value="/user/checklogin2/{token}", produces=MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
public String checkLogin(@PathVariable String token, String callback){
MessageResult result = ssoService.getUserByToken(token);
String json = JsonUtils.objectToJson(result);
String returnStr = callback + "(" + json + ")";
return returnStr;
}

  3 使用springMVC提供的类:

@RequestMapping(value="/user/checklogin2/{token}", produces=MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
public String checkLogin(@PathVariable String token, String callback){
MessageResult result = ssoService.getUserByToken(token);
String json = JsonUtils.objectToJson(result);
String returnStr = callback + "(" + json + ")";
return returnStr;
}

SpringMVC提交JSON格式的数据:

   对表单进行json提交(使用ajax):

 $(function(){
$('#saveBtn').click(function(){
        //创建javascript对象
var row = {
username: $('#username').val(),
password: $('#password').val(),
age: $('#age').val(),
}
$.ajax({
url: 'user-json',
type: 'post' ,
contentType: 'application/json;charset=utf-8',//声明请求头的内容类型
data: JSON.stringify(row)//将js对象转为json串
});
});
});
    @RequestMapping(value="/user-json", method=RequestMethod.POST)
public String savejson(@RequestBody User user) { userDao.save(user);
return "redirect:/users";
}

Spring MVC 处理JSON | JSONP类型数据的更多相关文章

  1. Spring MVC—数据绑定机制,数据转换,数据格式化配置,数据校验

    Spring MVC数据绑定机制 数据转换 Spring MVC处理JSON 数据格式化配置使用 数据校验 数据校验 Spring MVC数据绑定机制 Spring MVC解析JSON格式的数据: 步 ...

  2. spring mvc返回json字符串数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable

    1.spring mvc返回json数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable 2. @RequestMapping(val ...

  3. ajax使用向Spring MVC发送JSON数据出现 org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported错误

    ajax使用向Spring MVC发送JSON数据时,后端Controller在接受JSON数据时报org.springframework.web.HttpMediaTypeNotSupportedE ...

  4. spring mvc返回json字符串的方式

    spring mvc返回json字符串的方式 方案一:使用@ResponseBody 注解返回响应体 直接将返回值序列化json            优点:不需要自己再处理 步骤一:在spring- ...

  5. Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作

    详细的Spring MVC框架搭配在这个连接中: Maven 工程下 Spring MVC 站点配置 (一) Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作 这篇主 ...

  6. Spring Mvc 输出Json(iwantmoon.com出品)

    原文:http://iwantmoon.com/Post/f94e49caf9b6455db7158474bab4c4dd 因为工作需要,现在要去做开放平台,考虑了多种方案之后,基本确定 下来,Htt ...

  7. Spring MVC 的json问题(406 Not Acceptable)

    原因 : 就是程序转换JSON失败. 在pom.xml 加上 <dependency> <groupId>com.fasterxml.jackson.core</grou ...

  8. Spring MVC之JSON数据交互和RESTful的支持

    1.JSON概述 1.1 什么是JSON JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式.它是基于JavaScript的一个子集,使用了C.C ...

  9. Spring MVC返回json数据给Android端

    原先做Android项目时,服务端接口一直是别人写的,自己拿来调用一下,但下个项目,接口也要自己搞定了,我想用Spring MVC框架来提供接口,这两天便抽空浅学了一下该框架以及该框架如何返回json ...

随机推荐

  1. Architecture options to run a workflow engine

    This week a customer called and asked (translated into my own words and shortened): “We do composite ...

  2. inux下C中怎么让才干安全关闭线程

    前言:     多线程程序中,特别是频繁申请.释放线程的情况下,就要注意线程的关闭,最好使用线程池. 一,线程退出方式     (1) 运行完毕后隐式退出:     (2) 由线程本身显示调用pthr ...

  3. Python基础_私有变量访问限制

    Python内置了一些特殊变量,以前后上下划线标注,同时我们自己要想定义一些变量,不想让外部访问,又该怎么做呢?更多内容请参考:Python学习指南 访问限制 在class内部,可以有属性和方法,而外 ...

  4. python之路---03 整型 bool 字符串 for循环

    十三.整型(int) 基本操作: 1.+ - * / % // ** 2.  .bit_length() 计算整数在内存中占⽤的⼆进制码的⻓度 如: 十四.布尔值(bool) True  False ...

  5. webpack 相关插件及作用(表格)

    webpack 相关插件及作用: table th:first-of-type { width: 200px; } table th:nth-of-type(2) { width: 140px; } ...

  6. 基于结构化平均感知机的分词器Java实现

    基于结构化平均感知机的分词器Java实现 作者:hankcs 最近高产似母猪,写了个基于AP的中文分词器,在Bakeoff-05的MSR语料上F值有96.11%.最重要的是,只训练了5个迭代:包含语料 ...

  7. pyhanlp 中文词性标注与分词简介

    pyhanlp 中文词性标注与分词简介 pyhanlp实现的分词器有很多,同时pyhanlp获取hanlp中分词器也有两种方式 第一种是直接从封装好的hanlp类中获取,这种获取方式一共可以获取五种分 ...

  8. 了解ARM+Android

    第一部分 认识ARM,方案商,GPU , 芯片 1.1 ARM ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能.廉价.耗能低的RISC处理器.相关 ...

  9. git 强行pull并覆盖本地文件

    git 强行pull并覆盖本地文件 git fetch --all git reset --hard origin/master git pull

  10. php 测试 程序执行时间,内存使用情况

    memory_get_usage 可以分析内存占用空间. microtime 函数就可以分析程序执行时间. 上栗子: echo '开始内存:'.memory_get_usage(), ''; $tmp ...