Java前后端的JSON传输方式(前后端JSON格式转换)

下面是针对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技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • Java Spring登录练习详解

    下面是“Java Spring登录练习详解”的完整攻略: 1. 环境搭建 首先,需要搭建Java和Spring的开发环境。具体步骤如下: 安装Java 在Oracle官网下载页面选择合适的Java版本并进行安装。 在Windows下,将安装后的Java文件夹添加到系统环境变量的Path中。 在Linux或Mac下,通过配置.bashrc或.bash_prof…

    Java 2023年5月19日
    00
  • Servlet服务端实现原理详解

    一、Servlet服务端实现原理 在Web应用中,服务端可以通过Java的Servlet技术实现对客户端(浏览器)的响应。Servlet是运行在服务端的Java程序,实现了应用服务器与客户端(浏览器)之间的通讯和数据交换。Servlet是一种通用的、基于Java的服务器端组件技术,它是在服务器端动态生成Web页面或进行数据处理的主要手段之一。 Servlet…

    Java 2023年6月15日
    00
  • Java如何调用C++ DLL库

    Java与C++是不同语言,Java的运行环境JVM不能直接调用C++库。但是Java有一个机制可以通过Java Native Interfaces (JNI)来调用C++的动态链接库(DLL)文件。 下面是详细的步骤: 编写C++代码 首先,需要编写C++代码实现相应的函数。为了保证函数可以被调用,需要在函数前面加上__declspec(dllexport…

    Java 2023年5月24日
    00
  • 对Java字符串与整形、浮点类型之间的相互转换方法总结

    下面是“对Java字符串与整形、浮点类型之间的相互转换方法总结”的攻略。 1. Java字符串转整型 Java字符串可以通过Integer类的静态方法parseInt()实现转换成整型数据。具体语法如下: String s = "123"; int i = Integer.parseInt(s); // 这里的i值为123 同样的,如果字…

    Java 2023年5月27日
    00
  • JSP一句话木马代码

    首先,需要注意的是,编写和传播木马代码是违法的,本文仅用于学习和研究用途。 JSP一句话木马是一种常见的web后门,可以通过在服务器上运行的JSP文件中注入一段恶意代码的方式,让攻击者可以远程控制服务器,获取敏感信息等。以下是攻击过程的详细说明: 扫描漏洞:攻击者扫描要攻击的目标服务器,尤其是针对常见的web应用程序,如JavaWeb开发中常用的Tomcat…

    Java 2023年6月15日
    00
  • 将Java项目打包成可执行的jar包

    将Java项目打包成可执行的jar包可以方便地进行部署和发布,本文将介绍完整的打包流程。 1. 准备工作 在打包之前,需要准备好以下内容: 项目代码 Java开发环境(JDK) 指定项目的入口主类 2. 打包操作 下面就开始具体的打包操作步骤。 2.1 编译项目代码 首先需要将项目代码编译,生成class文件。在命令行中进入项目代码的根目录,执行以下命令: …

    Java 2023年5月26日
    00
  • java异常处理拦截器详情

    Java异常处理拦截器(Exception Handler)是一个对应用程序中的异常做出响应的组件。它可以捕捉并处理应用程序中发生的异常,从而使程序能够从异常中恢复并继续执行。在Java中,Exception Handler是通过异常处理代码块(try-catch)或者异常处理方法(throws)来实现的。 下面我们将具体讲解如何使用Java异常处理拦截器:…

    Java 2023年5月27日
    00
  • 2021年最新Redis面试题汇总(2)

    2021年最新Redis面试题汇总(2) 完整攻略 一、Redis中的事务 Redis的事务分为单条命令事务和多条命令事务。单条命令事务就是事务块中只包含一条命令,而多条命令事务就是在事务块中包含多条命令。 1.1 单条命令事务 在Redis中,单条命令事务使用MULTI、EXEC、WATCH和UNWATCH这四个命令来实现。其中: MULTI命令标记一个事…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部