JSON是做为前后端分离的中间人,他用来前后端传输数据,这里有详细讲解前端解析JSON,我简单的介绍一下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
// 定义一个js对象
var user = {
name:"uphe",
age:20,
sex:"man"
};
// 将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>
下面主要讲解在java中如何处理JSON,这里讲解两个工具,分别是jackson和fastjson
Jackson的使用,首先我们需要先导入包,也就是在maven中导入依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.0</version>
</dependency>
这里我只给出核心代码,也就是我们的Controller类
package com.zhiying.controller;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.zhiying.pojo.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@RestController //加上这个注解,这个类就不会走视图解析器了
//@Controller
public class UserController {
@RequestMapping("/t1")
//@ResponseBody //加上这个注解,这个方法就不会走视图解析器了
public String test1() throws JsonProcessingException {
User user = new User("uphe",20,"man");
ObjectMapper mapper = new ObjectMapper();
//将一个对象转化为JSON串
String s = mapper.writeValueAsString(user);
return s;
}
@RequestMapping("/t2")
//@ResponseBody //加上这个注解,这个方法就不会走视图解析器了
public String test2() throws JsonProcessingException {
User user1 = new User("uphe",20,"man");
User user2 = new User("uphe",20,"man");
User user3 = new User("uphe",20,"man");
List<User> list = new ArrayList<User>();
list.add(user1);
list.add(user2);
list.add(user3);
ObjectMapper mapper = new ObjectMapper();
//将一个集合转化为JSON串
String s = mapper.writeValueAsString(list);
return s;
}
}
fastjson同样的,先导入jar包,这个是阿里的
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.60</version>
</dependency>
然后是Controller类
package com.zhiying.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.zhiying.pojo.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@RestController //加上这个注解,这个类就不会走视图解析器了
//@Controller
public class UserController {
@RequestMapping("/t3")
//@ResponseBody //加上这个注解,这个方法就不会走视图解析器了
public String test3() throws JsonProcessingException {
User user1 = new User("uphe",20,"man");
User user2 = new User("uphe",20,"man");
List<User> list = new ArrayList<User>();
list.add(user1);
list.add(user2);
//java对象转化为json串
String s1 = JSON.toJSONString(user1);
System.out.println(s1);
String s2 = JSON.toJSONString(list);
System.out.println(s2);
//json串转化为java对象
User user = JSON.parseObject(s1,User.class);
System.out.println(user);
return "hello";
}
}