簡體   English   中英

如何將包含 json 個對象的文件格式化為 json 數組

[英]How to format the file containing json objects to json array

我有一個 json 文件,在一個文件中包含多個對象 我想將它們轉換為 JSON 數組 如何執行此操作 javascript。我的總體目標是從中生成一個 CSV 文件。

這是示例文件內容,

{
  Name:"nom1",
  Cities:['city1','city2']
}
{
  Name:"nom2",
  Cities:['city4','city5']
}

注意上面是數據轉儲,它的格式還不正確,我想將其轉換為以下格式

var data = [ { Name:"nom1", Cities:['city1','city2'] }, { Name:"nom2", Cities:['city3','city4'] } ]}; 

然后將它傳遞給下面的腳本。

我在一個文件中有成千上萬個這樣的對象。 我想生成CSV數據如下

|名稱|城市|

|名稱1|城市1 |

|名稱1|城市2 |

|名稱2|城市3 |

|名稱2|城市4 |

我正在使用節點 javascript 來實現這一點,

const { Parser, transforms: { unwind } } = require('json2csv');

const data = {
  Name:"nom1",
  Cities:['city1','city2']
}
const fields = ['Name'];
const transforms = [unwind({ paths: ['features'] })];

const json2csvParser = new Parser({ fields, transforms });
const csv = json2csvParser.parse(myCars);

console.log(csv);

這將與您提供的文件完全相同:

log-parser.js

const fs = require('fs')

async function fileToArray (file) {
  const fileContent = await fs.promises.readFile(file)
  const singleLined = fileContent
                .toString()
                .replace(/\n/g, '')
                .replace(/\}\{/g, '},{')
                .replace(/(\w+):/g, '"$1":')
                .replace(/'/g, '"')

  console.log(singleLined)
  const array = JSON.parse(`[${singleLined}]`)
  console.log(array)
}

fileToArray(process.argv[2])
node log-parser.js my-log-file.log

暫無
暫無

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

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