跨团队操作
可以给所有团队响应JSON。或者响应xml格式数据。
把响应返回的数据需要输出为json格式。
之前的方式
响应到具体页面
响应JSON不需要页面
第一步:导入JSON依赖包
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.7.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.7.4</version>
</dependency>
第二步:使用@ResponseBody注解对数据转化
代码如下:
@Controller
@RequestMapping("json")
public class JsonController {
@ResponseBody
@RequestMapping("/returnJson.do")
public List<Dto> returnJson(){
List<Dto> dtos=new ArrayList<>();
Dto dto =new Dto();
dto.setUsername("张颖豪");
dto.setPassword("521");
dto.setBirth(new Date());
dto.setLike(new String[]{"打篮球","喝酒"});
dto.setPrice(13.55);
Other other=new Other();
other.setUsername("魏雪");
other.setPassword("魏雪的密码");
dto.setOther(other);
Dto dto1=new Dto();
dto1.setUsername("赵淑英");
dto1.setPassword("赵淑英的密码啊");
dto1.setBirth(new Date());
dto1.setPrice(100.14);
dto1.setLike(new String[]{"做饭","聊天"});
Other other1=new Other();
other1.setUsername("張穎好");
other1.setPassword("是一個好人啊");
dto1.setOther(other1);
dtos.add(dto);
dtos.add(dto1);
return dtos;
}
}
测试 :在浏览器输入地址,观察输出。
观察上面的json输出,会发现date日期类型输出的是long类型,所以我们这里需要做处理。
时间若是Date类型会响应json为long型(后端可以把之前的转化DateTimeFormat修改为@JsonFormat(pattern = "yyyy-MM-dd"),推荐直接使用Long型或String
注意观察 我们仅仅修改此注解。
再次访问,观察输出:
总结Date时间处理:
针对时间类型:
Date类型:JSON显示
import com.fasterxml.jackson.annotation.JsonFormat;
@JsonFormat(pattern = "yyyy-MM-dd")
private Date carbirth;
有页面的格式化方式:
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date carbirth;
常用方式一:使用Long型(数据库也使用Long型)
常用方式二:使用 String
把java.util.Date类型的时间转化为Long型?
把Long型的时间转化为yyyy-MM-dd显示?
把Long型的时间转化为java.util.Date类型?
可以使用之前我写的一个日期转换类 DateUtils ,(菜鸟写的一个简单是日期工具类)