Java基础二十:JSON 数据解析、对象与 JSON 互转逻辑

Java 对象 ↔ JSON 互转

阿里巴巴 fastjson2

引入依赖(maven)

XML 复制代码
<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2</artifactId>
    <version>2.0.32</version>
</dependency>

创建实体类

java 复制代码
public class User {
    private String name;
    private int age;

    // get、set、toString
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }
}

核心代码:对象 ↔ JSON

对象 转 JSON(后端发给前端)

java 复制代码
public static void main(String[] args) {
    User user = new User();
    user.setName("张三");
    user.setAge(18);

    // 对象 → JSON字符串
    String json = JSON.toJSONString(user);
    System.out.println(json);
}
//输出:{"name":"张三","age":18}

JSON 转 对象(前端发来,后端解析)

java 复制代码
public static void main(String[] args) {
    String json = "{\"name\":\"张三\",\"age\":18}";

    // JSON → Java对象
    User user = JSON.parseObject(json, User.class);

    System.out.println(user.getName());
    System.out.println(user.getAge());
}

//输出:张三
        18

最常用 JSON 工具方法

java 复制代码
// 对象 → JSON
String json = JSON.toJSONString(对象);

// JSON → 对象
User user = JSON.parseObject(json, User.class);

// JSON → List集合
List<User> list = JSON.parseArray(json, User.class);

MYSQL基础核心

建表:

sql 复制代码
CREATE TABLE student(
    id INT PRIMARY KEY AUTO_INCREMENT, -- 主键、自增
    name VARCHAR(20) NOT NULL,        -- 姓名不能为空
    age INT,
    gender VARCHAR(5)
);

常用的5中sql

1)增加(INSERT)

sql 复制代码
INSERT INTO student(name,age,gender) VALUES('张三',20,'男');

2)删除(DELETE)

sql 复制代码
DELETE FROM student WHERE id=1;

3)修改(UPDATE)

sql 复制代码
UPDATE student SET age=21 WHERE id=1;

4)查询(SELECT)

sql 复制代码
SELECT * FROM student;

5)条件查询 + 排序 + 分页

sql 复制代码
SELECT * FROM student WHERE age>18 ORDER BY age DESC LIMIT 0,3;

简单联表查询(举例)

sql 复制代码
SELECT s.name, c.cname
FROM student s
JOIN class c ON s.cid = c.id;

JDBC 核心:Java 操作数据库(最重要!

JDBC 就是 Java 连接 MySQL 的标准 API,流程固定 6 步!

JDBC 固定 6 步(背会!)

  1. 加载驱动
  2. 获取连接
  3. 获取执行 SQL 的对象
  4. 执行 SQL
  5. 处理结果
  6. 关闭资源

完整 Java JDBC 代码(直接复制运行)

1. 先引入 MySQL 依赖(pom.xml)

XML 复制代码
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.30</version>
</dependency>

2. JDBC 查询数据示例

java 复制代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JdbcDemo {
    public static void main(String[] args) throws Exception {
        // 1. 加载驱动(MySQL 5.1+ 可省略)
        Class.forName("com.mysql.cj.jdbc.Driver");

        // 2. 获取连接
        String url = "jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC";
        String user = "root";
        String password = "123456";
        Connection conn = DriverManager.getConnection(url, user, password);

        // 3. 获取执行SQL的对象
        Statement stmt = conn.createStatement();

        // 4. 执行查询SQL
        String sql = "SELECT * FROM student";
        ResultSet rs = stmt.executeQuery(sql);

        // 5. 处理结果集
        while (rs.next()) {
            int id = rs.getInt("id");
            String name = rs.getString("name");
            int age = rs.getInt("age");
            System.out.println(id + " " + name + " " + age);
        }

        // 6. 关闭资源
        rs.close();
        stmt.close();
        conn.close();
    }
}

JDBC 增删改查 全套代码

1)增加

java 复制代码
String sql = "INSERT INTO student(name,age,gender) VALUES('李四',22,'女')";
int n = stmt.executeUpdate(sql); // 返回受影响行数
System.out.println("增加了:" + n + " 条");

2)删除

java 复制代码
String sql = "DELETE FROM student WHERE id=3";
int n = stmt.executeUpdate(sql);

3)修改

java 复制代码
String sql = "UPDATE student SET age=25 WHERE id=2";
int n = stmt.executeUpdate(sql);

4)查询

java 复制代码
ResultSet rs = stmt.executeQuery("SELECT * FROM student");

最重要的 3 个对象(必须懂)

  • Connection连接对象,代表 Java 和数据库的连接
  • Statement执行 SQL 的对象
  • ResultSet查询结果集,存查询出来的数据

必备关键字

  1. void
  • 意思:无返回值
  • 用在方法上:方法执行完不返回任何数据
java 复制代码
public void run(){
   // 没有return
}
  1. return

意思:返回结果 / 结束方法

java 复制代码
public int getNum(){
    return 10; // 返回10
}
  1. instanceof

意思:判断对象是否是某个类的实例

java 复制代码
if( p instanceof Student ){...}
  1. extends
  • 意思:继承
  • 继承
  • 子类继承父类
java 复制代码
class Son extends Father{ }
  1. implements
  • 意思:实现
  • 实现 接口
  • 必须重写所有抽象方法
java 复制代码
class A implements MyInterface{ }
  1. interface
  • 意思:接口
  • 全部是公开的抽象方法(Java 8+ 可加默认方法)
java 复制代码
interface MyInterface{
   void run();
}
  1. abstract
  • 意思:抽象
  • 修饰 → 抽象类
  • 修饰 方法 → 抽象方法(没有方法体)
java 复制代码
abstract class Animal{
   abstract void eat();
}
相关推荐
红叶舞1 天前
成数据绑定对象,在应用程序中处理完数据后,将更新的数据序列化为JSON传回远端服务器,很多移动应用使用了这种模式处理服务器端的数据。 ...
运维·服务器·json
name好难取诶2 天前
解析请求体内容(如 JSON、表单数据、XML 等) 将原始数据转换为 Python 数据结构 使转换后的数据可在 request. ...
xml·python·json
gcw10242 天前
JSONMe 简觅JSON 工具
json·json格式化·json可视化·json美化·json校验·好用的json工具·json编辑
北北牌屈四巴格!2 天前
whistle自定义修改接口返回值内容
前端·json
SQDN3 天前
Chatbox 1.22.1 获取不到模型?先验 /models,再对齐精确 model ID
人工智能·测试工具·机器学习·chatgpt·json
SunnyDays10113 天前
Python 将 Excel(XLS/XLSX)转换为 JSON:导出工作簿、工作表、单元格区域与自定义 JSON 结构
python·json·excel·excel 转 json·导出 excel 到 json·xlsx 转 json·xls 转 json
刘小八3 天前
Spring AI 结构化输出:稳定生成可校验的业务 JSON
人工智能·spring·json
CodexDave4 天前
Python 自动化接单实战(一):把 CSV 需求做成配置驱动解析器
java·python·自动化·json·数据清洗·python自动化·csv处理
今夜有雨.5 天前
C++JSON 解析器
c++·笔记·后端·学习·json
用户657094163305 天前
Kotlin Moshi库 全面使用指南
json