Java Web项目中Spring框架处理JSON格式数据的方法

 更新时间:2016年05月25日 16:35:16   作者:godlike  
Spring MVC是个灵活的框架,返回JSON数据的也有很多五花八门的方式,这里我们来整理一个最简单的Java Web项目中Spring框架处理JSON格式数据的方法:

json是一种常见的传递格式,是一种键值对应的格式。并且数据大小会比较小,方便传递。所以在开发中经常会用到json。

首先看一下json的格式:

{key1:value1,key2:value2}

每一个建对应一个值,每个键值对之间用逗号连接。并且最后一个键值对之后没有逗号,整体需要有大括号括起来。

一般正常的servlet返回json时,会像下面这样:

response.setContentType("text/JSON;charset=utf-8");
response.getWriter().print(gson.toJson(page));
response.getWriter().flush();
response.getWriter().close();
return null;

这样相对来说比较麻烦,也不好封装。新版spring返回json时,可以通过@ResponseBody直接返回,这点做得很不错,大概代码如下:

@Controller
@RequestMapping("/json")
public class JsonController {
  @RequestMapping(value="{provinceId}",method = RequestMethod.GET)
  @ResponseBody
  public String pagination(@PathVariable String provinceId){
    return getJsonData(provinceId);
  }
}

访问方式如下:http://localhost:8080/spring3/action/json/1,有一点需要注意下,那就是访问spring mvc的controller时中间加了个/action,那是因为DispatcherServlet的映射路径如果直接使用/*的话,会将相应的jsp屏蔽掉,所以一定得加个前缀以区别jsp与controller.

上面的json中如果有中文的话,会出现乱码,所以则修改spring-servlet.xml配置文件,修改下AnnotationMethodHandlerAdapter的messageConverters即可,因为其默认采用的iso8895-1的编码,代码如下:

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="webBindingInitializer">
      <bean class="com.mvc.commons.CommonsBindingInitializer" />
    </property>
    
    <property name="messageConverters">
      <list>
      <bean class="org.springframework.http.converter.StringHttpMessageConverter">
          <property name="supportedMediaTypes">
            <list>
              <value>text/plain;charset=UTF-8</value>
            </list>
          </property>
        </bean>
      </list>
    </property>
  </bean>

经过这些步骤后,对json的处理就相当方便了。

相关文章

  • JAVA最容易忽视的数据类型之枚举详解

    JAVA最容易忽视的数据类型之枚举详解

    这篇文章主要给大家介绍了关于JAVA最容易忽视的数据类型之枚举的相关资料,Java中的枚举类型是一种特殊的类型,它允许程序员定义一个固定的值集合,并为每个值分配一个名称,枚举类型提供了一种简单、安全和可读性强的方式来表示一组相关的常量,需要的朋友可以参考下
    2023-10-10
  • Java 超详细讲解数据结构的应用

    Java 超详细讲解数据结构的应用

    数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,让我们一起来了解数据结构是如何应用的
    2022-04-04
  • Java控制台输入数组并逆序输出的方法实例

    Java控制台输入数组并逆序输出的方法实例

    这篇文章主要介绍了Java手动输入数组并逆向输出的方法实例,需要的朋友可以参考下。
    2017-08-08
  • SpringMVC中@RequestMapping注解的实现

    SpringMVC中@RequestMapping注解的实现

    RequestMapping是一个用来处理请求地址映射的注解,本文主要介绍了SpringMVC中@RequestMapping注解的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • 后端将数据转化为json字符串传输的方法详解

    后端将数据转化为json字符串传输的方法详解

    这篇文章主要给大家介绍了关于后端将数据转化为json字符串传输的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Java8利用Stream实现列表去重的方法详解

    Java8利用Stream实现列表去重的方法详解

    这篇文章主要为大家介绍了Java利用Stream实现列表去重的几种方法详解,文中的示例代码讲解详细,需要的小伙伴可以参考一下
    2022-04-04
  • spring-boot项目启动迟缓异常排查解决记录

    spring-boot项目启动迟缓异常排查解决记录

    这篇文章主要为大家介绍了spring-boot项目启动迟缓异常排查解决记录,突然在本地启动不起来了,表象特征就是在本地IDEA上运行时,进程卡住也不退出,应用启动时加载相关组件的日志也不输出
    2022-02-02
  • Struts2学习笔记(3)-DMI动态调用方式

    Struts2学习笔记(3)-DMI动态调用方式

    本文主要介绍Struts2的DMI动态调用的两种方式,简单实用,希望能给大家做一个参考。
    2016-06-06
  • Java synchronized轻量级锁的核心原理详解

    Java synchronized轻量级锁的核心原理详解

    这篇文章主要为大家详细介绍了Java synchronized轻量级锁的核心原理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • Java mybatis-plus详解

    Java mybatis-plus详解

    MyBatis-Plus是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做修改,为简化开发、提高效率而生,本文给大家详细讲解一下MyBatis-Plus,需要的朋友参考下吧
    2021-09-09

最新评论