簡體   English   中英

如何使用JavaScript將解析數據寫入JSON文件?

[英]How to write parse data to a JSON file using JavaScript?

我正在嘗試創建一個API以將pdf文件轉換為JSON。 解析pdf文件后獲取的數據以逗號分隔。 我正在使用Nodejs pdf2json包。 解析pdf文件后得到的數據:

"val a: 1, val b: 2, val c, vald: 3, 4, 5, 6, val e: 7,"

所需輸出:

{
"val a" : 1,
"val b" : 2,
"val c" : "",
"vald" : "3,4,5,6",
"val e": 7
}

我正在使用的代碼:

 var express = require('express'), app = express(), upload = require('express-fileupload'), http = require('http').Server(app).listen(8080), PDFParser = require("pdf2json"), fs = require('fs'); console.log("Server started on port 8080"); //pdf parser let pdfParser = new PDFParser(this, 1); //express file uploader app.use(upload()); app.get("/", (req, res) => { res.sendFile(__dirname + "/index.html"); }) app.post("/", (req, res) => { if (req.files) { var file = req.files.filename, filename = file.name; pdfParser.parseBuffer(file.data); pdfParser.on("pdfParser_dataError", errData => console.error(errData.parserError)); pdfParser.on("pdfParser_dataReady", pdfData => { var output = JSON.stringify(pdfParser.getRawTextContent()).split(/\\\\r\\\\n/); fs.writeFile('data2toJson.json', output, 'utf8'); console.log("hellow" + Date()); }); res.send("done"); } }) 
 <form method="post" enctype="multipart/form-data" action="/"> <input type="file" name="filename"> <input type="submit" value="upload"> </form> 

我試圖根據您的問題獲得預期的輸出。 嘗試以下解決方案

希望這可以幫助您前進:)

注意:您應該嘗試優化的解決方案來執行相同的操作。

 var input = "val a: 1, val b: 2, val c, vald: 3, 4, 5, 6, val e: 7,"; var keys = input.match(/(val([a-z0-9\\s]+):)|(val([a-z0-9\\s]+),)/g) var output = {}; for (var i = 0; i < keys.length; i++) { input = input.slice(keys[i].length); if (i < keys.length - 1) var val = input.substring(0, input.indexOf(keys[i + 1])); else var val = input; input = input.slice(val.length); val = val.trim(); if (val.lastIndexOf(",") == val.length - 1) { val = val.substr(0, val.length - 1) } output[keys[i].replace(":", "").replace(",", "")] = val; } console.log(output) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM