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

 


posted @ 2021-08-19 14:58  codeZn  阅读(527)  评论(0)    收藏  举报