json的全称为:JavaScript Object Notation,是一种轻量级的数据交互格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。
简单来说:json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互。
<script>
var user ={
name:"liu",
age:3,
sex:"男"
}
// console.log(user);
//js对象转json
var json = JSON.stringify(user);
console.log(json);
//json 转js对象
var object = JSON.parse(json);
console.log(object);
</script>
方法一.通过@RequestMaping的produces属性来实现,修改下代码
//produces:指定响应体返回类型和编码
@RequestMapping(value = "/json1",produces = "application/json;charset=utf-8")
方法二.在servlet.xml中的annotation-driven中配置
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8"/>
</bean>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
<property name="failOnEmptyBeans" value="false"/>
</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
1.ObjectMapper:可以将对象转换成json字符串
public String json1() throws JsonProcessingException {
//jackson ObjectMapper
ObjectMapper mapper = new ObjectMapper();
User user = new User(2,"jie",1);
String str = mapper.writeValueAsString(user);
return str;
}
result:{“id”:2,“name”:“jie”,“age”:1}
2.当对象是一个Date对象时
ObjectMapper默认将其转换成时间戳形式
@RequestMapping("j3")
public String json3() throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
Date date = new Date();
String str = mapper.writeValueAsString(date);
return str;
}
修改时间格式:
方法一:利用SimpleDateFormat
public String json3() throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
String str = mapper.writeValueAsString(sdf.format(date));
return str;
}
方法二、利用objectmapper来设置
@RequestMapping("j4")
public String json4() throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
Date date = new Date();
//取消设置时间戳输出
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
//设置时间输出格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
mapper.setDateFormat(sdf);
String str = mapper.writeValueAsString(date);
return str;
}
}
public class jsonUtils {
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);
try {
return mapper.writeValueAsString(object);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
}