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;
}
}
测试:

数据确实是以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; } }
测试:

-
方式二:
<!-- 在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>
测试:

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;
}
}
测试:


浙公网安备 33010602011771号