一、主要内容说明

当我们处理爬取的数据时,可以使用filter等数组方法将数据转化为数组形式,再选择性的选择我们需要的数组的某个元素,整合为我们想要的数据形式保存于json文件中。本文主要是使用fs模块的读写功能,写、读我们自己设置的人员信息。对于fs模块安装的问题,具体可以看往一篇的博文。本文的源码只是简单的读写json文件,概念形的运用。

(一)、JSON文件

JSON数据以键值对的形式组织,键必须是字符串,值可以为字符串、数字、布尔值、数组、对象、null。如:"key:value",key为键,value为值。文件后缀通常为“.json”,如:文件.json。对象使用大括号{}包含,键值对用逗号“,”隔开。数组使用中括号[]包含,元素间用逗号分隔。

(二)、JSON用到的相关方法

1.JSON.stringify()方法

JSON.stringify()方法用于将对象转化为JSON字符串,具体格式如下。

JSON.stringify(A, B, C)
	A----要转换成字符串的内容,通常为对象或数组,本文源码举例使用对象数组。
	B----调换函数,对A的内容进行转变,若不转变用空值null
	C----每个层级缩进的空格数,主要为了美观。

对于B的调换函数,就是转换化对象内容中,有些内容我们并不需要,可以使用函数方法设置不让它显示,当我们对原内容不需要增加或减少时,选null空值便可。
对于C的内容,因为默认情况下将内容转化为字符串后,字符串的内容是独一行保存在文件中,此时若使用层级空格缩进,可以让内容更加美观。如下:

  • 未使用空格层级缩进的情况,如下图:
    在这里插入图片描述
  • 使用空格层级缩进的情况,如下图:
    在这里插入图片描述

2.JSON.parse()方法

JSON.parse()方法主要用于解析内容,将JSON字符串内容解析成我们需要的键值对的形式的对象。

JSON.parse(A, B)
	A----要解析的JSON字符串
	B----可选,函数,对返回的键值对进行函数处理。本文例子未用。

二、例子

(一)、fs模块写、读json文件

1.源码1 (fs模块写、读json文件)

import * as fs from "fs";

// 定义 Message 接口,包含人员信息的属性
interface Message {
    name: string;  // 姓名
    age: number;   // 年龄
    height: number; // 身高
    date: string;  // 日期类型使用字符串表示
}

// 创建一个人员信息数组
let mes: Message[] = [
    { name: "小八", age: 23, height: 150, date: (new Date()).toLocaleString() },
    { name: "阿七", age: 21, height: 158, date: (new Date()).toLocaleDateString() }, // 只保留日期
    { name: "芽儿", age: 28, height: 168, date: (new Date()).toLocaleTimeString() }, // 只保留时间
    { name: "雅儿", age: 12, height: 160, date: (new Date()).toLocaleString() }
];

// 将人员信息写入 JSON 文件
fs.writeFile("人员信息.json", JSON.stringify(mes, null, 2), "utf8", (err) => {
    if (err) {
        console.log("文件创建失败!", err); // 输出错误信息
        return; // 终止回调
    }
    console.log("文件创建成功!"); // 成功提示信息
});

// 读取 JSON 文件中的人员信息
fs.readFile("人员信息.json", "utf8", (err, data) => {
    if (err) {
        console.log("文件读取失败!", err); // 输出错误信息
        return; // 终止回调
    }

    // 将读取的数据解析为 Message 数组
    let mesArray: Message[] = JSON.parse(data); 
    // 遍历人员信息数组,输出每个人的姓名、年龄、身高和记录时间
    mesArray.forEach((message) => {
        console.log(`姓名:${message.name},年龄:${message.age},身高:${message.height},记录时间:${message.date}`);
    });
});

2.源码1的运行效果

(1)、创建json文件部分

我们是先创建一个json文件,文件名为“人员信息.json”,内容为源码中设置的对象数组mes,有4人的人员信息。通过JSON.stringify()方法将mes数组内容转化为JSON字符串。文件中的内容为字符串类型。

  • 文件如下:
    在这里插入图片描述
  • 文件内容如下:
    在这里插入图片描述
(1)、读取json部分

使用JSON.parse()方法解析前面转化为JSON字符串的内容,将字符串对象内容再转化为键值对形式,以便我们输出显示。
在这里插入图片描述

三、结语

理解了概念再拓展,当例子里的人员信息,更换为数据库的大量信息,是不是我们就可以在此基础上添加更多的函数方法,来读写文件。
json文件好像我们常见的配置文件。
每天将内容添加往前推一点,久而久之这部分内容也就推过去了,同时这部分内容也同属于自己了。
由于笔者的能力有限,创作的内容有所不足在所难免,也敬请读者包涵和指出,万分感谢!

四、定位日期

2024.11.1;
20:07;

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部