下面是针对Java前后端的JSON传输方式以及前后端JSON格式转换的完整攻略。
一、JSON格式简介
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON格式常用于Web应用程序之间的数据传输。
1.1 JSON格式规则
在JSON中,数据格式采用键值对的形式,键值对之间用逗号隔开。整个JSON以大括号 {}
来包裹。例如:
{
"name": "Tom",
"age": 25,
"isMale": true
}
在JSON中,键名必须为字符串,键值可以为字符串、数值、布尔值、数组、对象等。
1.2 JSON应用场景
JSON格式通常用于Web应用程序之间的数据传输,主要应用场景有:
- 前后端数据交互
- 与Web API交互
- 数据存储和配置文件
二、Java后端将对象转换为JSON
在Java后端中,我们可以通过使用“Jackson”或“Gson”库将Java对象转换为JSON格式数据。这里以“Jackson”为例进行讲解。
2.1 添加Jackson的依赖
在Maven项目中,我们首先需要在pom.xml文件中添加Jackson的相关依赖。具体代码如下:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.12.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
2.2 将Java对象转换为JSON格式数据
在Java后端中,我们通过使用“ObjectMapper”对象来将Java对象转换为JSON格式数据。具体操作步骤如下:
import com.fasterxml.jackson.databind.ObjectMapper;
// Java对象转JSON
ObjectMapper objectMapper = new ObjectMapper();
String jsonStr = objectMapper.writeValueAsString(javaObj);
其中,javaObj
为需要转换的Java对象,jsonStr
为转换后得到的JSON格式数据。
2.3 示例代码
假设我们有如下的Java对象:
public class Person {
private String name;
private int age;
private boolean isMale;
// 省略getter和setter方法
}
我们可以通过在Java后端的servlet中将这个对象转换为JSON格式数据,并通过response对象返回给前端。示例代码如下:
import com.fasterxml.jackson.databind.ObjectMapper;
@WebServlet("/person")
public class PersonServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 创建一个Person对象
Person person = new Person();
person.setName("Tom");
person.setAge(25);
person.setMale(true);
// 将Person对象转为JSON格式数据
ObjectMapper objectMapper = new ObjectMapper();
String jsonStr = objectMapper.writeValueAsString(person);
// 设置response的Content-Type和字符集
response.setContentType("application/json;charset=UTF-8");
// 将JSON格式数据写入response输出流
PrintWriter out = response.getWriter();
out.write(jsonStr);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
三、Java前端将JSON格式数据转换为对象
在Java前端中,我们可以通过使用“Jackson”或“Gson”库将JSON格式数据转换为Java对象。这里以“Jackson”为例进行讲解。
3.1 添加Jackson的依赖
在Maven项目中,我们需要在pom.xml文件中添加Jackson的相关依赖。具体代码如下:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.12.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
3.2 将JSON格式数据转换为Java对象
在Java前端中,我们通过使用“ObjectMapper”对象来将JSON格式数据转换为Java对象。具体操作步骤如下:
import com.fasterxml.jackson.databind.ObjectMapper;
// JSON转Java对象
ObjectMapper objectMapper = new ObjectMapper();
Person person = objectMapper.readValue(jsonStr, Person.class);
其中,jsonStr
为需要转换的JSON格式数据,Person.class
表示转换后得到的Java对象类型。
3.3 示例代码
假设我们有如下的HTML代码:
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<meta charset="UTF-8">
<title>Person信息</title>
</head>
<body>
<table>
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
</tr>
</thead>
<tbody id="person-info">
</tbody>
</table>
<script>
$.get("person", function(data){
// 将JSON格式数据转为Person对象
var person = JSON.parse(data);
// 将Person对象的属性渲染到页面上
var tbody = $("#person-info");
var tr = $("<tr></tr>");
tr.append("<td>" + person.name + "</td>");
tr.append("<td>" + person.age + "</td>");
tr.append("<td>" + (person.isMale ? "男" : "女") + "</td>");
tbody.append(tr);
});
</script>
</body>
</html>
我们可以通过在Java后端的servlet中返回一个Person对象,然后在前端将JSON格式数据转换为Person对象,并将Person对象的属性渲染到页面上。示例代码如下:
import com.fasterxml.jackson.databind.ObjectMapper;
@WebServlet("/person")
public class PersonServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 创建一个Person对象
Person person = new Person();
person.setName("Tom");
person.setAge(25);
person.setMale(true);
// 将Person对象转为JSON格式数据
ObjectMapper objectMapper = new ObjectMapper();
String jsonStr = objectMapper.writeValueAsString(person);
// 设置response的Content-Type和字符集
response.setContentType("application/json;charset=UTF-8");
// 将JSON格式数据写入response输出流
PrintWriter out = response.getWriter();
out.write(jsonStr);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
以上就是完整的Java前后端JSON传输方式的攻略,其中包含了两个示例代码。希望能对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java前后端的JSON传输方式(前后端JSON格式转换) - Python技术站