JSON是一種輕量級數(shù)據(jù)交換格式,通常被用來傳輸結(jié)構(gòu)化的數(shù)據(jù)。有時(shí)候我們需要將一個(gè)JSON文件分割成兩個(gè)獨(dú)立的JSON文件,以便我們能更好地管理和處理數(shù)據(jù)。在本文中,我們將學(xué)習(xí)如何將一個(gè)JSON文件拆分成兩個(gè)獨(dú)立的JSON文件。
首先,我們需要將原始JSON文件讀入內(nèi)存。這可以通過從磁盤讀取文件或從網(wǎng)絡(luò)獲取文件來完成。在本例中,我們將使用以下JSON文件:
{ "id": 1, "name": "John Doe", "age": 30, "gender": "male", "email": "johndoe@example.com", "address": { "street": "123 Main St", "city": "Anytown", "state": "CA", "zip": 12345 }, "phone": [ { "type": "home", "number": "555-1234" }, { "type": "work", "number": "555-5678" } ] }
如上所述,我們可以使用文件讀取函數(shù)從磁盤或網(wǎng)絡(luò)中讀取此JSON文件。我們將使用以下代碼來讀取該文件:
var fs = require('fs'); var data = fs.readFileSync('jsonFile.json', 'utf8'); var json = JSON.parse(data);
在這段代碼中, fs.readFileSync() 函數(shù)將jsonFile.json文件讀入內(nèi)存中。'utf8'參數(shù)指示該文件以文本格式讀取,并將其表示為字符串。最后,我們將字符串解析為JSON對象。
接下來,我們需要從原始JSON文件中提取數(shù)據(jù)以生成兩個(gè)新的JSON文件。我們將創(chuàng)建一個(gè)新的JSON對象來保存我們想要提取的數(shù)據(jù),并使用 fs.writeFile() 函數(shù)將其寫入磁盤。
var newUser = { "id": json.id, "name": json.name, "age": json.age, "gender": json.gender }; fs.writeFile('newUser.json', JSON.stringify(newUser), function(err) { if (err) throw err; console.log('New user file created'); }); var newAddress = json.address; fs.writeFile('newAddress.json', JSON.stringify(newAddress), function(err) { if (err) throw err; console.log('New address file created'); });
在這段代碼中,我們創(chuàng)建了兩個(gè)新的 JSON 對象, newUser 和 newAddress 。這些對象包含我們要提取的數(shù)據(jù)。我們使用 fs.writeFile() 函數(shù)將每個(gè)對象寫入磁盤上各自的新JSON文件。
最后,我們應(yīng)該看到兩個(gè)新的JSON文件被創(chuàng)建:newUser.json 和 newAddress.json 。這些文件應(yīng)包含我們從原始JSON文件中提取的數(shù)據(jù)。