前言
在前端开发中,我们经常会需要解析银行对账单文件,以便于我们对这些数据做更多的分析和处理工作。而camt054就是一个能够解析这种类型文件的npm包。
本文将会深入探讨camt054的使用方法,帮助大家更加轻松自如的使用这个包。
安装camt054
首先我们要使用npm安装camt054。
npm install --save camt054
注意,camt054需要node版本5.x以上支持。因此,如果你的node版本不够,需要先升级node。
camt054基本使用
camt054提供了一个接口用于解析银行对账单文件parse,让我们可以方便的解析这种类型的文件。
const parser = require('camt054').parser; const data = parser.parse(xml); console.log(data);
上面这段代码将会输出一个解析后的JSON数据内容。
camt054中支持两种不同的版本解析,其中version v2是更加先进的标准规范,而版本v1则是更加通用的老版本。我们可以使用下面的代码指定v2版本的解析:
const parser = require('camt054').parserV2; const data = parser.parse(xml); console.log(data);
camt054解析的结果不仅仅包含了银行对账单数据内容,还包含了一些附加信息,如账单生成日期、文件ID等等。
camt054进阶使用
Bank Statement详解
camt054的解析结果中最重要的信息是Bank Statement,常常也被简称为BS。BS中包含了银行对账单文件中的大部分信息,如账号余额、交易详细信息等等。
camt054中,我们可以使用下面的代码展示银行对账单中的所有数据项:
const lib = require('camt054'); const data = lib.parser.parse(xml); console.log(data.CAMT.BkToCstmrStmt)
在解析后的JSON数据对象中,Bank Statement就被存放在了CAMT.BkToCstmrStmt中。其中,BkToCstmrStmt是一个对象,包含了三个属性:
- GrpHdr: 包含了对账单文件的一些概要信息,如发起方/接收方信息等等。
- Stmt: 包含了一个时间范围内的全部交易明细信息。
- Bal: 包含了一段时间内的账号余额信息。
解析交易明细数据
在Bank Statement的Stmt属性中,我们可以找到所有的交易明细数据。Stmt是一个数组,每个元素都包含了一笔交易的详细明细信息。我们可以使用下面的代码来遍历交易明细:
const lib = require('camt054'); const data = lib.parser.parse(xml); const trans = data.CAMT.BkToCstmrStmt.Stmt; for (let i = 0; i < trans.length; i++) { const transaction = trans[i]; console.log(transaction.TxDtls); }
在交易明细对象中,我们可以找到很多重要的交易数据,比如:
- Amount: 交易金额
- CreditDebitInd: 交易类型(借/贷)
- InstdAmt: 预约金额
- CdtDbtInd: 交易借贷类型(借方、贷方或者平账)
- RmtInf: 摘要
- BkTxCd: 针对该交易使用的业务交易代码(BIC或者其他)
这些数据可以让我们对银行对账单中的交易信息进行更加深入的分析。
camt054使用示例
解析银行对账单文件
在下面的示例中,我们将会解析一份银行对账单文件,并打印出其摘要和交易金额信息:
-- -------------------- ---- ------- ----- --- - ------------------- ----- -- - -------------- ----- --- - -------------------------------------- -------- ----- ---- - ---------------------- ----- ----- - ----------------------------- --- ---- - - -- - - ------------- ---- - ----- ----------- - --------- ----------------------------------------------------- - - - - ----------------------- -
构建自定义的对象
有时候,我们需要将银行对账单中的数据转化为我们自己定义的对象,以便于我们进行更加自由的扩展。下面是一个示例:
-- -------------------- ---- ------- ----- ----------- - ------------------- ----- ------- - ----------- - ------- --------- - ----- ----------- - ------- - - ----- --- - ------------------- ----- -- - -------------- ----- --- - -------------------------------------- -------- ----- ---- - ---------------------- ----- ----- - ----------------------------- ----- ------------ - --- --- ---- - - -- - - ------------- ---- - ----- ----------- - --------- ----- - - --- ---------------------------------- ---------------------- ------------------------------- --------------------- - --------------------------
在这个示例中,我们定义了一个名为Transaction的类,每个实例都包含了一个amount、type和remark属性。然后,我们使用Bank Statement中的数据,初始化了一个Transaction对象,并将其全部存储到transactions数组中。
结论
camt054是一个非常适合前端的npm包,能够让开发人员更加高效地解析银行对账单文件。通过本文的讲解,相信大家对该包的使用方法已经有了深入的了解。希望大家在日常开发中,能够善用camt054,更加高效的完成银行对账单相关工作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056e9d81e8991b448e75d3