Java后端返回Json数据

Java后端返回Json数据

Jackson

导包

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.12.1</version>
</dependency>

创建ObjectMapper对象,调用writeValueAsString()方法。

@Controller
public class returnJson {
    @RequestMapping("/hello/json")
    @ResponseBody
    public String rJson() throws JsonProcessingException {
        User user = new User("小小哥布林","1234");
        //jackson
        ObjectMapper objectMapper = new ObjectMapper();
        String str = objectMapper.writeValueAsString(user);
        return str;
    }
}

测试:

image-20210209210455088

数据确实是以Json字符串的形式返回给前端了,但出现了乱码问题。

Json乱码问题解决:

  • 方式一:

    @Controller
    public class returnJson {
        //在@RequestMapping中显式的声明返回的是json形式的数据
        @RequestMapping(value="/hello/json",produces="application/json;charset=utf-8")
        @ResponseBody
        public String rJson() throws JsonProcessingException {
            User user = new User("小小哥布林","1234");
            //jackson
            ObjectMapper objectMapper = new ObjectMapper();
            String str = objectMapper.writeValueAsString(user);
            return str;
        }
    }
    
    

测试:

image-20210209210904913

  • 方式二:

    <!-- 在springMVC配置文件中添加如下配置   -->
    <mvc:annotation-driven>
        <!--JSON乱码问题配置-->
        <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>
    

测试:

image-20210209211457828

FastJson

导包

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.75</version>
</dependency>

调用Json类的静态方法

@Controller
public class returnJson {
    @RequestMapping("/hello/json")
    @ResponseBody
    public String rJson() throws JsonProcessingException {
        User user = new User("张三","1234");
        String str = JSON.toJSONString(user);
        return str;
    }
}

测试:

image-20210209214219565

posted @ 2021-02-09 21:45  xxgbl  阅读(907)  评论(0)    收藏  举报