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();
}
相关推荐
吴声子夜歌12 小时前
PlantUML——显示JSON数据
json
祀爱13 小时前
ControllerBase 类将对象转换为 JSON 格式并返回前端的方法
前端·json·asp.net
weelinking1 天前
【产品】11_实现后端接口——数据在背后如何流动
java·人工智能·python·sql·oracle·json·ai编程
油炸自行车2 天前
Claude Code 错误:API Error: 400 Failed to deserialize the JSON body into the
开发语言·javascript·json·trae·claude code·api error 400
NiceCloud喜云2 天前
Claude Code 跑 HyperFrames 实测:本地生成 AI 视频素材全流程
java·运维·人工智能·自动化·json·音视频·飞书
逍遥德2 天前
PostgreSQL --- JSON 函数详解
数据库·sql·postgresql·json
輕華3 天前
Flask_GET请求与JSON响应实战详解
python·flask·json
NiceCloud喜云3 天前
Claude Code Routines 实战:三种触发器跑通云端自动化编码
android·运维·数据库·人工智能·自动化·json·飞书
海兰3 天前
Kibana Dashboard as Code:Elastic 9.4 如何用 Terraform 和类型化 API 终结“JSON 垃圾袋“
云原生·json·terraform