学完这篇,再也不怕 面试官出题 让你 利用 Javascript 语言处理 json文件数据, 读取,拆分,然后写入新的文件了。

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值