在Node.js中解析JSON
如何從字符串解析JSON,以及如何在Node.js中讀取JSON文件
如果您有一個字符串作為一部分的JSON數據,最好的方法是使用JavaScript標準的JSON.parse
方法來解析數據。自ECMAScript 5以來,這個方法已經提供給V8,這是Node.js所使用的JavaScript引擎。
示例:
1 | const data = '{ "name": "Flavio", "age": 35 }' |
請注意,JSON.parse
是同步的,所以JSON文件越大,你的程序執行時間也會越長,因為需要阻塞程序執行直到解析完成。
你可以通過將其放在一個promise和setTimeout調用中,以異步方式處理JSON。這確保解析在事件循環的下一次迭代中進行。
1 | const parseJsonAsync = (jsonString) => { |
如果您的JSON數據是存在文件中的,您首先需要讀取它。
一種非常簡單的方法是使用require()
:
1 | const data = require('./file.json') |
由於你使用了.json擴展名,所以require()
足夠聰明,會自動解析JSON數據到data對象中。
唯一的一個缺點是文件讀取是同步的方式進行的。此外,require()的結果會被緩存,所以如果您因為更新了文件而再次調用它,直到程序退出之前,您將無法獲取新的內容。
這個功能用於使用JSON文件作為應用程序配置的一部分,這是一個完全有效的使用場景。
您還可以手動讀取文件,使用fs.readFileSync
:
1 | const fs = require('fs') |
這是同步讀取文件的方式。
您還可以使用fs.readFile
以異步方式讀取文件,這是最佳選擇。在這種情況下,文件內容作為回調函數提供,您可以在回調函數內處理JSON:
1 | const fs = require('fs') |
tags: [“Node.js”, “JSON”, “JavaScript”]