zoukankan      html  css  js  c++  java
  • springmvc对于JSON对象的处理

    1、常见的json    jar包,及其优缺点(开发中可以一起使用)

      json-lib           缺点:依赖第三方的包
      jackson        SpringMVC内置的json装换工具,依赖包较少
      GSON          谷歌开源jar包,功能最强大,不依赖任何包
      fastjson        阿里巴巴开源jar包,效率最高,不依赖任何报

    2、在需要返回的方法前面加上     @ResponseBody注解

     1 @RequestMapping(value = "/user/userview.html", method = RequestMethod.POST)
     2     @ResponseBody
     3     public Object getUserById(@RequestParam String uid) {
     4         String cjson = "";
     5         if (StringUtils.isNullOrEmpty(uid)) {
     6             return "nodata";
     7         } else {
     8             try {
     9                 User user = userService.getUserById(uid);
    10                 cjson = JSON.toJSONString(user);
    11             } catch (Exception e) {
    12                 e.printStackTrace();
    13                 return "failed";
    14             }
    15         }
    16         return cjson;
    17     }

    3、对日期格式的处理

    [{"address":"北京海淀","age":5,"birthday":1338307200000,"createdBy":0,"gender":2,"id":19,"modifyBy":0,"phone":"13878907654","userCode":"admin","userName":"系统管理员","userType":1}]

    在查看日期格式的内容时,我们发现日期格式不是我们想要的

     解决办法1:

    在对应实体类的日期加上注解:针对阿里巴巴的  fastjson---------------@JSONField(format="yyyy-MM-dd"),缺点是依赖性太强,强耦合

    解决方法2:

    配置视图解析图

    在springMVC配置文件中配置 

     1 <!-- 配置多视图解析器,允许用同样的内容数据来呈现不同的view -->
     2         <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
     3             <!-- 支持参数匹配 -->
     4             <property name="favorParameter" value="true"/>
     5             <!-- contentType 以何种格式进行展示 -->
     6             <property name="mediaTypes">
     7                 <map>
     8                     <entry key="html" value="text/html;charset=UTF-8"/>
     9                     <entry key="xml" value="application/xml;charset=UTF-8"/>
    10                     <entry key="json" value="application/json;charset=UTF-8"/>
    11                 </map>
    12             </property>
    13             <property name="viewResolvers">
    14                 <list>
    15                     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    16                         <property name="prefix" value="/WEB-INF/jsp/"/>
    17                         <property name="suffix" value=".jsp"/>
    18                     </bean>
    19                 </list>
    20             </property>
    21         </bean>
    @RequestMapping(value = "/user/userview2", method = RequestMethod.GET)
        @ResponseBody
        public Object getUserById2(@RequestParam String uid) {
            User user = new User();
            try {
                user = userService.getUserById(uid);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return user;
        }

    访问路径:两种方式:(可以访问json、xml、html、xls....)

    (1)、使用扩展名:   http://localhost:8080/ShopSystem/user/userview2.json?uid=19

    (2)、使用参数(favorParameter):   http://localhost:8080/ShopSystem/user/userview2?uid=19&format=json

    注:访问xml时需要在对应实体类配置注解       @XmlRootElement

     页面输出:

  • 相关阅读:
    错误
    分页查询
    异步请求jquery
    深入理解C/C++ [Deep C (and C++)]
    C语言经典算法100例(三)
    《Python》 计算机基础
    Python程序员的进化史
    以前没有写笔记的习惯,现在慢慢的发现及时总结是多么的重要。 这一篇文章主要关于java多线程一些常见的疑惑点。因为讲解多线程的书籍和文章已经很多了,所以我也不好意思多说,嘻嘻嘻、大家可以去参考一些那些书籍。我这个文章主要关于实际的一些问题。同时也算是我以后复习的资料吧,。还请大家多多指教。 同时希望多结交一些技术上的朋友。谢谢。
    快速读入函数
    一元二次方程公式
  • 原文地址:https://www.cnblogs.com/wiseroll/p/7074687.html
Copyright © 2011-2022 走看看