目录
一、JSON
二、JSON数据格式
三、返回JSON配置步骤
JSON (JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
1)数组:[1,2,3,4,5.....] 2)对象:{'name':'zs','age':21} 3)混合:{'total':81,'rows':[{'bookName=':'123','price':23},{'bookName=':'3546','price':23},{},....]}
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;
}
运行页面效果
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;
}
运行页面效果
效果一:自动生成的时间,只是一串数字编码
效果二:生成了完整的时间
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);
}
4、查询返回List
/**
* 查询返回List
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;
}
6、返回String类型的JSON数据类型
/**
* 查询返回String类型的JSON类型
* @return
*/
@RequestMapping("/queryStr")
@ResponseBody
public String queryStr(){
return "book/booklist";
}
希望可以给你带来帮助,若有建议可以私信作者哦~