springMVC--JSON

#第一步:导入json依赖

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

第二步:在springmvc配置文件中;配置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>

 

实体类

//需要导入lombok
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private String name;
    private int age;
    private String sex;
}

Controller

package com.kuang.controller;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.kuang.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author Administrator
 * @description: TODO
 * @date 2021/11/20 15:14
 */
@Controller//会走视图解析器,和标签
//@RestController//返回一个字符串
public class UserController  {

    @RequestMapping("/js")
    /*
        这个注解表示不会走视图解析器,直接返回一个字符串
        假如使用了RestController,就不需要使用ResponseBody注解了
     */
    @ResponseBody
    public String test() throws JsonProcessingException {


        //json依赖中有一个ObjectMapper,有一个writeValueAsString可以将对象转换为json对象
        ObjectMapper mapper = new ObjectMapper();

        User user = new User("小李",10,"男");
        String str = mapper.writeValueAsString(user);
        return str;
    }


    /**
     * 将对象数组转换为json格式
     * @return
     * @throws JsonProcessingException
     */
    @RequestMapping("/js1")
    @ResponseBody
    public String test1() throws JsonProcessingException {
        ObjectMapper mapper = new ObjectMapper();
        List<User> userList = new ArrayList<User>();
        User user1 = new User("小李1",10,"男");
        User user2 = new User("小李2",10,"男");
        User user3 = new User("小李3",10,"男");
        User user4 = new User("小李4",10,"男");
        userList.add(user1);
        userList.add(user2);
        userList.add(user3);
        userList.add(user4);
        String str = mapper.writeValueAsString(userList);
        return str;
    }

    /**
     * 将Date转换为json格式
     * @return
     * @throws JsonProcessingException
     */
    @RequestMapping("/js2")
    @ResponseBody
    public String test2() throws JsonProcessingException {

        ObjectMapper mapper = new ObjectMapper();
        Date date = new Date();
        //自定义日期格式化
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");

        return mapper.writeValueAsString(simpleDateFormat.format(date));
    }


}

 

posted @ 2021-11-20 16:10  江南0o0  阅读(24)  评论(0编辑  收藏  举报