Javascript 语言处理 json文件数据
照例 本文的结尾部分 全部代码 免费奉上
引言
在自动化测试中,有时候必须利用javascript 语言来处理json数据并处理出来。 但是已经进行过的自动化测试项目的数据结果可能没办法如你所愿。 所以需要利用javascript先对数据处理。 比如, 把json结果中所有的 “Exp_Ampl_1x”: “1.248 - 1.298” 这一类用 破折号 连接在一起的数据拆分为两项 分别给变量 "Exp_Ampl_1x min — 1.248, “Exp_Ampl_1x max: 1.298”, 这一类的。
文件的预处理
// 文件系统模块(Node.js环境下使用)
const fs = require('fs');
// 命令行参数处理
const args = process.argv.slice(2); // 获取命令行参数
const inputFilePath = args[0] || 'input.json'; // 默认输入文件为input.json
const outputFilePath = args[1] || 'output.json'; // 默认输出文件为output.json
const useCompactVersion = args[2] === 'compact'; // 添加第三个参数用于选择处理方式
console.log(`输入文件: ${
inputFilePath}`);
console.log(`输出文件: ${
outputFilePath}`);
console.log(`处理模式: ${
useCompactVersion ? '简洁模式(不保留原始值)' : '标准模式(保留原始值)'}`);
需要处理的文件有两种方式,可以写在代码内,也可以在调用的时候补全。 比如代码内是input.json. 如果你需要处理的json文件就叫input,那么在使用的时候直接 在命令行里
args[2] 是第三个参数。如果它的值是 compact,则 useCompactVersion 变量为 true,表示使用简洁模式;否则为 false,表示使用标准模式。
node xxx.js
就可以了。
或者使用第二种方法,
node xxx.js IMX.json
IMX.json 就是你需要处理的json文件,另外 你可以选择保留原始数据 或者只保留处理好的数据。
标准模式为
node processJson.js input.json output.json
简洁模式(不保留原始值)
node processJson.js input.json output.json compact
读取json文件
/**
* 读取JSON文件
* @param {string} filePath - 文件路径
* @returns {Object} 解析后的JSON数据
*/
function readJsonFile(filePath) {
try {
const data = fs.readFileSync(filePath, 'utf8');
return JSON.parse(data);
} catch (error) {
console.error(`读取文件失败: ${
error.message}`);
throw error;
}
}
首先是 注释,描述了函数的用途、参数和返回值。
@param {string} filePath 表示函数接受一个字符串类型的参数 filePath,代表文件路径。
@returns {Object} 表示函数返回一个对象类型的数据,即解析后的 JSON 数据。
函数定义
function readJsonFile(filePath) {
定义了一个名为 readJsonFile 的函数,接受一个参数 filePath。
try {
const data = fs.readFileSync(filePath, 'utf8');
使用 try 块尝试执行代码,以捕获可能的错误。
fs.readFileSync(filePath, ‘utf8’) 读取指定路径的文件,并以 UTF-8 编码格式读取内容。fs 是 Node.js 的文件系统模块。
return JSON.parse(data);
JSON.parse(data) 将读取到的文件内容(字符串)解析为 JSON 对象,并返回。
} catch (error) {
console.error(`读取文件失败: ${
error.message}`);
throw error;
}
如果在 try 块中发生错误,catch 块会捕获错误。
console.error 输出错误信息到控制台。
throw error 将错误抛出,以便调用者处理。
所以,主要功能是读取指定路径的 JSON 文件,并将其内容解析为 JavaScript 对象。如果读取或解析过程中发生错误,代码会捕获并输出错误信息。
写入json 文件
/**
* 写入JSON文件
* @param {string} filePath - 文件路径
* @param {Object} data - 要写入的数据
*/
function writeJsonFile(filePath, data) {
try {
const jsonData = JSON.stringify(data, null, 2);
fs.writeFileSync(filePath, jsonData, 'utf8');
console.log(`数据已成功写入文件: ${
filePath}`);
} catch (error) {
console.error(`写入文件失败: ${
error.message}`);
throw error;
}
}
主要功能是将数据对象转换为 JSON 字符串,并将其写入指定路径的文件。如果写入过程中发生错误,代码会捕获并输出错误信息。
/**
* 写入JSON文件
* @param {string} filePath - 文件路径
* @param {Object} data - 要写入的数据
*/
注释,描述了函数的用途、参数。
@param {string} filePath 表示函数接受一个字符串类型的参数 filePath,代表文件路径。
@param {Object} data 表示函数接受一个对象类型的参数 data,代表要写入的数据。
function writeJsonFile(filePath, data) {
定义了一个名为 writeJsonFile 的函数,接受两个参数 filePath 和 data。
try {
const jsonData = JSON.stringify(data, null, 2);
使用 try 块尝试执行代码,以捕获可能的错误。
JSON.stringify(data, null, 2) 将 data 对象转换为 JSON 字符串,并格式化为带有缩进的字符串(每层缩进 2 个空格)。
fs.writeFileSync(filePath, jsonData, 'utf8');
fs.writeFileSync(filePath, jsonData, ‘utf8’) 将 JSON 字符串 jsonData 写入到指定路径的文件中,并使用 UTF-8 编码。
con