我发现在线cookie netscape在线转换为json转换器,现在我想用节点js重复它。问题是此转换器上的textarea会以某种方式自动删除无效行。因此,当我将文件粘贴到textarea时,我得到的文件包含180行数据,它变为175行,即使在转换之前,它也以某种方式删除了一些无效行,但是没有函数可以这样做。 (任何网站上的任何textarea都这样做)
当我尝试在Windows 10中以vscode编写代码时,尝试从在线转换器中放入数据-json是有效的,但是当我在本地服务器上编写相同的函数时,输出的对象比在线转换器的输出少比我意识到textarea在其中粘贴数据时直接删除了6行。
我的代码:
let cookiesArr = NetscapeToJson(cookies);
fs.writeFile(
"cookies.json",
JSON.stringify(cookiesArr, null, 4),
function(err) {
if (err) throw err;
}
);
function NetscapeToJson(text) {
var arrOfObjects = [];
var arrayOfLines = text.split("\n");
for (let i = 0; i < arrayOfLines.length; i++) {
var kuka = arrayOfLines[i].split("\t");
if (kuka.length == 7) {
kuka = kuka.map(function(e) {
return e.trim();
});
var cook = new Object();
cook.domain = kuka[0];
cook.expirationDate = parseInt(kuka[4]);
if (kuka[1] == "FALSE") cook.httpOnly = false;
if (kuka[1] == "TRUE") cook.httpOnly = true;
cook.name = String(kuka[5]);
cook.path = kuka[2];
if (kuka[3] == "FALSE") cook.secure = false;
if (kuka[3] == "TRUE") cook.secure = true;
cook.value = kuka[6];
arrOfObjects[i] = cook;
}
}
return arrOfObjects;
}
在线转换器代码库.pro / pages / netscapetojson /(非adv):
<div class="info-text1">
<center>Cookies converter: Netscape to JSON</center>
<script>
window.onload=function(){
document.getElementById("textarea1").wrap='off';
}
function NetscapeToJson(){
var textArea2 = document.getElementById("textarea2");
textArea2.value = '';
var arrObjects = [];
var textArea1 = document.getElementById("textarea1");
var arrayOfLines = textArea1.value.split("\n");
var i = 0;
for (i=0; i<arrayOfLines.length; i++){
var kuka = arrayOfLines[i].split("\t");
var cook = new Object();
cook.domain = kuka[0];
cook.expirationDate = parseInt(kuka[4]);
if (kuka[1] == "FALSE") cook.httpOnly = false;
if (kuka[1] == "TRUE") cook.httpOnly = true;
cook.name = kuka[5];
cook.path = kuka[2];
if (kuka[3] == "FALSE") cook.secure = false;
if (kuka[3] == "TRUE") cook.secure = true;
cook.value = kuka[6];
arrObjects[i] = cook;
}
var cookieStr = JSON.stringify(arrObjects);
textArea2.value = cookieStr;
}
</script>
<h3>NETSCAPE: </h3>
<textarea id = "textarea1" wrap="soft" rows="20" style="width: 100%" onclick="this.select()"></textarea>
<br>
<button onclick="NetscapeToJson()" class="sbutton"> Convert >>> </button>
<br>
<br>
<h3>JSON: </h3>
<textarea id = "textarea2" wrap="soft" rows="20" style="width: 100%" onclick="this.select()"></textarea>
输入数据太大,可以根据需要上载txt文件,而要点是,任何textarea都在做同样的事情,并删除了无效行
文件编码ID为UTF-8