安装插件
https://blog.youkuaiyun.com/jackson_lingua/article/details/134660610
读写文件并转换json和xml
使用的包
const fs = require(“fs”);
const JSONStream = require(“JSONStream”);
const xml2js = require(“xml2js”);
const builder = new xml2js.Builder();
const parser = new xml2js.Parser();
代码
// var data;
try {
const readStream = fs.readFileSync(res + "/list.json", "utf8");
console.log(readStream);
var data = JSON.parse(readStream);
console.log(data);
// const readable = fs.createReadStream(res + '/list.json', {
// encoding: 'utf8',
// highWaterMark: 10
// });
// // 使用JSONStream解析流
// const parseStream = readable.pipe(JSONStream.parse('*')); // '*' 表示解析整个JSON数组 .
// var datajson;
// parseStream.on('data', (data: any) => {
// console.log(data); // 处理解析出的每个JSON对象
// datajson = data;
// });
} catch (err) {
console.error(err);
}
//xml 解析
try {
const xmlContent = fs.readFileSync(res + "/autoConvert.xml");//, "GBK"
const d = new TextDecoder('gbk'); // 需要指定编码
const str = d.decode( xmlContent ); // str便是解码了的字符串
// XML 转 JavaScript 对象
const xml = '<root>Hello XML</root>';
parser.parseString(xml, (err: any, result: any) => {
if (err) {
throw err;
}
console.log(result); // { root: 'Hello XML' }
});
// JavaScript 对象 转 XML
const obj = { root: 'Hello XML' };
const xml2 = builder.buildObject(obj);
console.log(xml2); // <root>Hello XML</root>
} catch (error) {}
}
关于乱码
这是一种编码错误:windows 默认编码为gbk。
查看window默认编码:
win+ R 进入cmd界面:输入 chcp
936 为gbk编码
更改字符输出字符编码:(utf8)
输入:chcp 65001
when 条件判断
when表达式,正则匹配路径
https://cloud.tencent.com/developer/article/2316862
https://code.visualstudio.com/api/references/when-clause-contexts
“resourceExtname != .js” or “resourceExtname != ‘.js’”