我試圖解析Node.js中的一些JSON。 JSON來自.json文件。由於Node的異步性質,我想我錯過了一些東西。但是,我不確定如何超越它。目前,我正在嘗試以下代碼:在Node.js中依次解析JSON
var results = null;
// Read the .json file
var file = __dirname + '/config.json';
fs.readFile(file, 'utf8', function (err, data) {
if (err) {
return;
}
results = JSON.parse(data);
console.log(results.count);
});
// iterate through keys in results and print them out one at a time.
每當我運行此代碼時,最後一個console.log行將打印'undefined'。出於這個原因,我甚至沒有嘗試通過密鑰迭代。但是,我知道我在正確加載以.json文件,因爲當我這樣做時,我看到預期的結果:
results = JSON.parse(data, function(k, v) {
console.log(k + ' : ' + v);
});
這就是爲什麼我懷疑它是與節點的異步性質。但是,我不知道如何解決這個問題。
謝謝您的幫助。
我會冒'count'不是頂級屬性 - 你能否提供一個例子'config.json'來重複這個問題? –
在上面的代碼中打印未定義與異步無關。如果'結果===未定義',那麼它會崩潰與ReferenceError。既然沒有發生,那就意味着「結果」是一個對象。由於它打印未定義,所以'count'屬性沒有在'results'對象上定義。檢查你的JSON。 – Sukima