(1) 采用完全独立的编程语言的文本格式来存储和表示数据
(2) 容易阅读 同时也容易让机器解析和生成,有效的提高了网络的传输效率
(3) 任何Javascript支持的类型都可以通过接送来传输,对象表示为键值对,数据 直接由逗号分隔,花括号存储对象 ,中括号存储数组
二,jackson的使用
0.吧基本mvc环境搭建好 1.要使用jackson就要导入依赖
2.配置解决json中文乱码包com.fasterxml.jackson.core jackson-databind2.13.1
3,编写controllo文件创建 ObjectMapper 对象
注意:使用 @ResponseBody注解要 配合 @Controller注解一起使用
RestController 和 ResponesBody 的作用一致
//@Controller//走试图解析器
@RestController //标记了下面之会返回字符串
public class SpringmvcJson {
@RequestMapping("/s/j1")
//@ResponseBody //就不会走视图解析器,直接返回一个字符串 配合Controller标签一起使用的
public String json1() throws JsonProcessingException {
final ObjectMapper om = new ObjectMapper();
User user = new User("张三",1,200);
// 把他转换成json格式
String j=om.writevalueAsString(user);
return j;
}
三,玩法
1,可以测试date , 数组 ,和对象的表示形式
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.kuang.pojo.User;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
//@Controller//走试图解析器
@RestController //标记了下面之会返回字符串
public class SpringmvcJson {
@RequestMapping("/s/j1")
//@ResponseBody //就不会走视图解析器,直接返回一个字符串 配合Controller标签一起使用的
public String json1() throws JsonProcessingException {
final ObjectMapper om = new ObjectMapper();
User user = new User("张三",1,200);
String j=om.writevalueAsString(user);
return j;
}
@RequestMapping("/s/j2")
public String json2() throws JsonProcessingException {
final ObjectMapper om = new ObjectMapper();
ArrayList userArrayList = new ArrayList();
User user1= new User("张三1",1,200);
User user2= new User("张三2",1,200);
User user3= new User("张三3",1,200);
User user4= new User("张三4",1,200);
userArrayList.add(user1);
userArrayList.add(user2);
userArrayList.add(user3);
userArrayList.add(user4);
String j=om.writevalueAsString(userArrayList);
return j;
}
// 方法一
@RequestMapping("/s/j3")
public String json3() throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return mapper.writevalueAsString(sdf.format(date));
}
// 方法二
@RequestMapping("/s/j4")
public String json4() throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
// 意思就是吧原本的 时间差 关闭了
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
mapper.setDateFormat(sdf);
Date date = new Date();
return mapper.writevalueAsString(date);
}
date的进阶玩法
第一步 :吧上面的代码独立写成一个工具类
package com.kuang.utlis;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import java.text.SimpleDateFormat;
import java.util.Date;
public class JsonUtlis {
public static String getJson(Object object){
return getJson(object,"yyyy-MM-dd HH:mm:ss");
}
public static String getJson(Object object , String dateFormat){
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
mapper.setDateFormat(sdf);
Date date = new Date();
try {
return mapper.writevalueAsString(date);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
}
第二步,直接调用刚刚写的工具类即可
@GetMapping("/j5")
public String json5(){
Date date = new Date();
return new JsonUtlis().getJson(date);
}



