简单JSON处理(重点)

跨团队操作
可以给所有团队响应JSON。或者响应xml格式数据。
把响应返回的数据需要输出为json格式。

之前的方式
响应到具体页面


image.png

image.png

响应JSON不需要页面
第一步:导入JSON依赖包


com.fasterxml.jackson.core
jackson-core
2.7.4


com.fasterxml.jackson.core
jackson-databind
2.7.4


com.fasterxml.jackson.core
jackson-annotations
2.7.4

第二步:使用@ResponseBody注解对数据转化

代码如下:
@Controller
@RequestMapping("json")
public class JsonController {
@ResponseBody
@RequestMapping("/returnJson.do")
public List returnJson(){

    List 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;
}

}

测试 :在浏览器输入地址,观察输出。


image.png

观察上面的json输出,会发现date日期类型输出的是long类型,所以我们这里需要做处理。

时间若是Date类型会响应json为long型(后端可以把之前的转化DateTimeFormat修改为@JsonFormat(pattern = "yyyy-MM-dd"),推荐直接使用Long型或String

注意观察 我们仅仅修改此注解。


image.png

再次访问,观察输出:


image.png

总结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 ,(菜鸟写的一个简单是日期工具类)

你可能感兴趣的:(简单JSON处理(重点))