讲师中心 微信公众号
AI工具推荐 视频效率加速

Java项目中如何做购物清单持久化_JSON与本地存储方式说明

夜雪吖_9129

夜雪吖_9129

发布时间:2025-11-17 15:31:02

|

351人浏览过

|

来源于php中文网

原创

答案:通过JSON格式与本地文件结合实现购物清单持久化,使用Gson库进行对象序列化,封装PersistenceManager类处理保存与加载,适合小型Java项目的数据存储需求。

java项目中如何做购物清单持久化_json与本地存储方式说明

在Java项目中实现购物清单的持久化,可以通过JSON格式结合本地文件存储的方式完成。这种方式轻量、易读、便于调试,适合小型应用或原型开发。下面介绍如何设计和实现这一功能。

数据模型设计

购物清单通常包含商品名称、数量、是否已购买等信息。可以定义一个简单的POJO类来表示清单条目:

public class ShoppingItem {
    private String name;
    private int quantity;
    private boolean purchased;

    // 构造方法
    public ShoppingItem() {}

    public ShoppingItem(String name, int quantity, boolean purchased) {
        this.name = name;
        this.quantity = quantity;
        this.purchased = purchased;
    }

    // Getter 和 Setter 方法
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }

    public int getQuantity() { return quantity; }
    public void setQuantity(int quantity) { this.quantity = quantity; }

    public boolean isPurchased() { return purchased; }
    public void setPurchased(boolean purchased) { this.purchased = purchased; }
}

整个购物清单可用 ArrayList 表示。

使用JSON进行序列化与反序列化

推荐使用 Google Gson 库处理Java对象与JSON之间的转换。首先添加依赖(Maven):

立即学习“Java免费学习笔记(深入)”;


  com.google.code.gson
  gson
  2.10.1

使用Gson将购物清单保存为JSON字符串:

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.util.List;

Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(shoppingList); // shoppingList 是 List<ShoppingItem>

从JSON字符串恢复购物清单:

github项目持续追踪
github项目持续追踪

GitHub 项目更新追踪工具 - 自动检查多个 GitHub 项目的 Releases 和 CHANGELOG,生成更新摘要与影响分析报告。支持自动化定时任务。 如何使用 最简单的方式:直接用自然语言告诉我 你可以说 我会做 「检查 GitHub 更新」 检查最新版本 「添加 vscode」 追踪新项目 「停止追踪 xxx」 移除项目 「暂停更新检查」 暂停自动化 「给我看 openclaw 报告」 展示报告 触发词:「追踪项目更新」「检查 GitHub 更新」「项目更新报告」「设置更新提醒」

下载
List<ShoppingItem> loadedList = gson.fromJson(json, new TypeToken<List<ShoppingItem>>(){}.getType());

本地文件读写操作

将序列化后的JSON保存到本地文件,如 shopping_list.json。以下是保存和加载的示例代码:

保存到文件:

import java.nio.file.Files;
import java.nio.file.Paths;

Files.write(Paths.get("shopping_list.json"), json.getBytes());

从文件读取:

String json = Files.readString(Paths.get("shopping_list.json"));

建议在读取前判断文件是否存在,避免异常:

if (Files.exists(Paths.get("shopping_list.json"))) {
    String json = Files.readString(Paths.get("shopping_list.json"));
    // 反序列化
}

实际使用建议

在实际项目中,可封装一个工具类管理持久化操作:

public class PersistenceManager {
    private static final String FILE_PATH = "shopping_list.json";
    private static final Gson gson = new GsonBuilder().setPrettyPrinting().create();

    public static void save(List<ShoppingItem> list) throws IOException {
        String json = gson.toJson(list);
        Files.write(Paths.get(FILE_PATH), json.getBytes());
    }

    public static List<ShoppingItem> load() throws IOException {
        if (!Files.exists(Paths.get(FILE_PATH))) {
            return new ArrayList<>();
        }
        String json = Files.readString(Paths.get(FILE_PATH));
        return gson.fromJson(json, new TypeToken<List<ShoppingItem>>(){}.getType());
    }
}

这样在主程序中只需调用 PersistenceManager.load() 和 PersistenceManager.save(list) 即可完成持久化。

基本上就这些。JSON加本地文件的方式简单直接,适合学习和小项目使用。注意处理好异常,比如文件权限、读写失败等情况。不复杂但容易忽略。

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2195

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

3442

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

1156

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

3959

2025.09.10

Java Maven专题
Java Maven专题

本专题聚焦 Java 主流构建工具 Maven 的学习与应用,系统讲解项目结构、依赖管理、插件使用、生命周期与多模块项目配置。通过企业管理系统、Web 应用与微服务项目实战,帮助学员全面掌握 Maven 在 Java 项目构建与团队协作中的核心技能。

4080

2025.09.15

Java Maven/Gradle 构建与依赖管理合集
Java Maven/Gradle 构建与依赖管理合集

系统讲解 Java 项目构建工具的使用与进阶配置,涵盖 Maven 的 POM 文件结构、生命周期(clean/compile/package/install/deploy)与插件机制、依赖范围(compile/provided/test/runtime)与传递依赖管理、多模块聚合与继承、私有 Nexus 仓库发布,以及 Gradle 的 Groovy / Kotlin DSL 语法、Task 自定义与增量构建、依赖版本目录(Versi

369

2026.05.09

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

1798

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

2844

2023.09.04

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

120

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
dev.java 官方:Learn Java
dev.java 官方:Learn Java

共0课时 | 0人学习

Java JDBC数据库连接官方教程
Java JDBC数据库连接官方教程

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn