4.json介绍

 

 

 代码测试:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
<!--script标签不能自闭-->
    <script>
        //编写一个javascript对象
        var user={
            name:"",
            age:3,
            sex:""
        }
        console.log(user);
        //将js对象转化为json对象
        var json=JSON.stringify(user);
        console.log(json);
        //将json对象转化为js对象
        var obj=JSON.parse(json)
        console.log(obj);
    </script>
</head>
<body>


</body>
</html>

json的使用

导入依赖

<dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.10.0</version>
    </dependency>

向前端显示一个json对象

 @RequestMapping("/j1")
    @ResponseBody//不会走视图解析器,会直接返回一个字符串
    public String json1() throws JsonProcessingException {
        //objectMapper
        ObjectMapper mapper=new ObjectMapper();
        User user=new User(1,"吴",3);
        String s = mapper.writeValueAsString(user);
        return s;
    }

显示时间

    @RequestMapping("/j2")
    @ResponseBody//不会走视图解析器,会直接返回一个字符串
    public String json2() throws JsonProcessingException {
        //格式化输出
        ObjectMapper mapper=new ObjectMapper();
        //关闭时间戳
        mapper.configure(SerializationFeature.WRITE_DATE_KEYS_AS_TIMESTAMPS,false);
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//格式化
        mapper.setDateFormat(sdf);
        Date date=new Date();
        return mapper.writeValueAsString(date);
    }
}

 一般会把其中的操作抽取出来作为一个工具类jsonUtil

public class JsonUtils {
    public static String getJson(Object object,String sdf){
        ObjectMapper mapper=new ObjectMapper();
        //不使用时间戳
        mapper.configure(SerializationFeature.WRITE_DATE_KEYS_AS_TIMESTAMPS,false);
        //自定义日期格式
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat(sdf);
        mapper.setDateFormat(simpleDateFormat);
        try {
            return mapper.writeValueAsString(object);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return null;
    }
}

直接调用

    @RequestMapping("/j2")
    @ResponseBody//不会走视图解析器,会直接返回一个字符串
    public String json2() throws JsonProcessingException {
        Date date=new Date();
        return  JsonUtils.getJson(date, "yyyy-MM-dd HH:mm:ss");
    }

在spring的配置文件中解决json乱码问题

<!--解决json前端的乱码-->
    <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>
</beans>

 

posted @ 2021-06-11 14:24  一拳超人的逆袭  阅读(40)  评论(0编辑  收藏  举报