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();
}
相关推荐
ha_lydms16 小时前
MaxCompute中JSON函数
大数据·数据库·阿里云·json·dataworks·maxcompute·odps
LeoCrawls2 天前
Python 读取 JSON 常见报错排查,附完整处理函数
python·json·php
星河耀银海2 天前
数据解析:AI返回JSON数据在HTML5中的渲染方法
人工智能·json·html5
三8442 天前
Fastjson 漏洞 · 01 · 认识 Fastjson 与序列化基础
json·fastjson·反序列化
一直在努力的小宁3 天前
【阅读笔记】具身操作的数采方案概览
后端·json·restful·具身智能·vla·vlm
wuyk5553 天前
Python实战项目05:JSON数据解析与数据可视化小案例|全套实战闭环
python·信息可视化·json
波力海苔夹心脆6753 天前
C# 序列化与反序列化详解:System.Text.Json、Newtonsoft.Json、XmlSerializer 用法、特性选项与安全实践
经验分享·后端·c#·json·.net
数据狐(Datafox)4 天前
淘宝商品详情API实战:多语言代购商城自动同步数据完整方案
开发语言·前端·数据库·爬虫·json
阿钱真强道5 天前
21 嵌入式操作系统 | JSON 与 json-c:生成与解析
c语言·开发语言·json·json-c
譕痕10 天前
JSONObject与JSONArray封装数据格式区别
java·json