SpringMVC之JSON

目录

一、JSON

二、JSON数据格式

         三、返回JSON配置步骤


一、JSON

JSON (JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。


二、JSON数据格式

1)数组:[1,2,3,4,5.....]
2)对象:{'name':'zs','age':21}
3)混合:{'total':81,'rows':[{'bookName=':'123','price':23},{'bookName=':'3546','price':23},{},....]}

三、返回JSON配置步骤

1、首先导入JSON的相关依赖,在pom.xml中配置


    
      com.fasterxml.jackson.core
      jackson-databind
      ${jackson.version}
    
    
      com.fasterxml.jackson.core
      jackson-core
      ${jackson.version}
    
    
      com.fasterxml.jackson.core
      jackson-annotations
      ${jackson.version}
    

2、在springmvc.xml文件中配置JSON的消息转换器 


        
            
                
            
        
    
    
        
        
            
                text/html;charset=UTF-8
                text/json;charset=UTF-8
                application/json;charset=UTF-8
            
        
    

3、在控制层使用@ResponseBody注解标记请求处理方法

ResponseBody:被改注解所标记的请求处理方法将返回JSON格式的数据,绕开视图解析器 

1、返回List泛型格式的JSON数据

 /**
     * 返回List格式的JSON数据 数组格式
     * @param book
     * @param req
     * @return
     */
    @RequestMapping("/queryLstBook")
    @ResponseBody
   public List queryLstBook(Book book,HttpServletRequest req){
       PageBean pageBean=new PageBean();
       pageBean.setRequest(req);
      List books= bookService.queryBookPager(book,pageBean);
      return books;
   }

运行页面效果

SpringMVC之JSON_第1张图片

 2、返回实体类型的JSON数据

 /**
     * 返回实体类的JSON数据
     * @param bookId
     * @return
     */
   @RequestMapping("/querySingleBook")
   @ResponseBody
   public Book querySingleBook(Integer bookId){
       Book book = bookService.selectByPrimaryKey(bookId);
        book.setDate(new Date());
       return book;
   }

运行页面效果

效果一:自动生成的时间,只是一串数字编码

 

 效果二:生成了完整的时间

SpringMVC之JSON_第2张图片

2.1在model层的实体类属性中,添加了一个@JsonFormat注解,就会的到效果二

 @JsonFormat(pattern = "yyyy-mm-dd HH:mm:ss",timezone ="GMT+8" )
    private Date createdate;

2.2在model层的实体类属性中,添加了一个@JsonIgnore注解

此注解代表在返回JSON数据时会忽略此字段 只在返回实体类时有效

  @JsonIgnore 忽略实体类
    private String bookName;

2.3在model层的实体类属性中,添加了一个@JsonProperty注解

在返回实体类的JSON数据格式时,给此字段取别名 只在返回实体类时有效

@JsonProperty("bName") 别名
    private String bookName;

 3、返回Map类型的JSON数据

 /**
     * 查询返回Map类型的JSON数据
     * @param bookId
     * @return
     */
   @RequestMapping("/querySingleMap")
   @ResponseBody
   public Map querySingleMap(Integer bookId){
       return bookService.querySingleMap(bookId);
   }

SpringMVC之JSON_第3张图片

 4、查询返回List类型的JSON数据

  /**
     * 查询返回List类型的JSON数据
     * @return
     */
   @RequestMapping("/queryMapLst")
   @ResponseBody
   public List> queryMapLst(){
       return bookService.queryMaplst();
   }

SpringMVC之JSON_第4张图片 

 

5、返回混合类型的JSON数据 

 /**
     * 查询返回JSON数据的混合格式
     * @param book
     * @param req
     * @return
     */
    @RequestMapping("/queryLstBook1")
    @ResponseBody
    public Map queryLstBook1(Book book,HttpServletRequest req){
        PageBean pageBean=new PageBean();
        pageBean.setRequest(req);
        List books= bookService.queryBookPager(book,pageBean);
        Map json=new HashMap<>();
        json.put("total",pageBean.getTotal());
        json.put("rows",books);
        return json;
    }

 

SpringMVC之JSON_第5张图片

 6、返回String类型的JSON数据类型

 /**
     * 查询返回String类型的JSON类型
     * @return
     */
    @RequestMapping("/queryStr")
    @ResponseBody
    public String queryStr(){
       return "book/booklist";
    }

 希望可以给你带来帮助,若有建议可以私信作者哦~

你可能感兴趣的:(spring,spring,java)