SpringMVC-相关知识:JSON
Posted jiaxing-java
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC-相关知识:JSON相关的知识,希望对你有一定的参考价值。
JSON
前后端分离时代:
后端部署后端,提供接口
+
建立连接(json)
+
前端独立部署,负责渲染后端的数据
<script type="text/javascript">
// 编写一个JavaScript对象
var user =
name:"秦疆",
age : 3,
sex:"男"
// 将js对象转化为JSON对象(字符串)
var json = JSON.stringify(name:\'秦疆\',age:3,sex:\'男\')
// // 将JSON对象(字符串)转化为js对象
var obj = JSON.parse(\'"name":"秦疆","age":3,"sex":"男"\')
console.log(user)
console.log(json) // "name":"秦疆","age":3,"sex":"男"
console.log(obj) // age: 3 \\n name: "秦疆" \\n sex: "男"
</script>
1、Jackson的使用
-
导入依赖
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.7.1</version> </dependency>
-
配置解决乱码问题
<!--配置注解驱动--> <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>
-
在Controller类中创建一个ObjectMapper对象,把实体类的对象转换成String
@Controller public class UserController @RequestMapping("j1") @ResponseBody // 增加了这个注解,就不会走视图解析器,会直接返回一个字符串 public String json1() throws JsonProcessingException // jackson ObjectMapper ObjectMapper mapper = new ObjectMapper(); // 创建一个对象 User user = new User("长江七号",3,"男"); String s = mapper.writeValueAsString(user); return s;
- 或者把类上的注解改成@RestController,使它其中的所有方法都会返回JSON字符串
@RestController public class UserController @RequestMapping("j1") public String json1() throws JsonProcessingException // jackson ObjectMapper ObjectMapper mapper = new ObjectMapper(); // 创建一个对象 User user = new User("长江七号",3,"男"); String s = mapper.writeValueAsString(user); return s;
2、fastjson的使用
-
导入依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>2.0.25</version> </dependency>
-
新建类并在其中测试
@RequestMapping("j4") public String json4() List<User> userList = new ArrayList<>(); // 创建一个对象 User user1 = new User("长江1七号",3,"男"); User user2 = new User("长江2七号",3,"男"); User user3 = new User("长江3七号",3,"男"); User user4 = new User("长江4七号",3,"男"); userList.add(user1); userList.add(user2); userList.add(user3); userList.add(user4); System.out.println("*********Java对象转JSON字符串*********"); String str1 = JSON.toJSONString(userList); System.out.println("JSON.toJSONString(list) ==>" + str1); String str2 = JSON.toJSONString(user1); System.out.println("JSON.toJSONString(user1) ==>" + str2); System.out.println("\\n*********JSON字符串转Java对象*********"); User jp_user1 = JSON.parseObject(str2,User.class); System.out.println("JSON.parseObject(str2,User.class) ==>" + jp_user1); System.out.println("\\n*********Java对象转JSON对象*********"); JSONObject jsonObject1 = (JSONObject) JSON.toJSON(user2); System.out.println("(JSONObject) JSON.toJSON(user2) ==>" + jsonObject1.getString("name")); System.out.println("\\n*********JSON对象转Java对象*********"); User to_java_user = JSON.toJavaObject(jsonObject1,User.class); System.out.println("JSON.toJavaObject(jsonObject1,User.class) ==>" + to_java_user); return "hello";
由阿里巴巴团队开发,大多方法见名知意
以上是关于SpringMVC-相关知识:JSON的主要内容,如果未能解决你的问题,请参考以下文章