Json和对象的相互转化
在前端JavaScript中进行转化
<script type="text/javascript"> var user = { name:"a", age:"2", sex:"男" } var x =JSON.Stringify(user); var obj=JSON.parse(x); </script>
JSON.Stringify()方法会把对象转化为Json字符串格式,JSON.parse()方法会把Json字符串转化为对象。
在后端Controller进行转换,返回一个Json字符串,可以使用JackSon
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.3</version> </dependency>
在Controller层在方法上加一个@ResponseBody注解,可阻止返回给视图解析器,直接返回一个Json对象。
在Controller代码中使用ObjectMapper类调用WriteValueAsString(Object object)方法可以把一个对象转换为Json字符串,如果出现乱码问题可以在@RequestMapping(value="xxx")上增加produces="application/json;charset=utf-8"
Json中设置指定时间格式,首先设置Json默认时间戳格式关闭,然后设置时间格式,设置Json时间格式为指定的时间格式。
mapper.configure(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS,false); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); mapper.setDateFormat(simpleDateFormat);
可以直接封装成一个包装类,需要转化时直接调用
public class JsonUtils { public static String getJson(ObjectMapper mapper,Object object) throws JsonProcessingException { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); mapper.configure(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS,false); ObjectMapper mapper1 = mapper.setDateFormat(simpleDateFormat); String s = mapper1.writeValueAsString(object); return s; } }

浙公网安备 33010602011771号