2016-07-25 17 views
-1

抓住了一些我的數據的一個長長的清單,按以下格式:從以.json

[ 
{ 
    "ID": "1234", 
    "date/time": "2016-07-18 18:21:44", 
    "source_address": "8011", 
    "lat": "40.585260", 
    "lng": "-105.084420", 
} 
] 

而且我創建一個腳本來提取值從每行的。例如,如果一行包含「ID」:我希望能夠將值「1234」存儲到一個變量中,因此我可以將其存儲爲不同的格式。

這裏是我的代碼來檢測「ID」:

'use strict'; 

let lineReader = require('line-reader'); 

//.JSON variables from input file 
let id; 


//begin creating new object 
console.log('var source = {'); 
//output the file 
lineReader.eachLine('dataOut.json', function (line, last) { 

    //detect ID, and print it out in the new format 
    if (id =~ /^id:$/) { 
     console.log('id: "') + console.log('",'); 
    } 

    //done 
    if (last) { 
     console.log('}'); 
     return false; // stop reading 
    } 
}); 

一旦我檢測ID,我不知道我怎麼能獲得如下在該行的「ID」的值。

當我檢測到他們在哪條線路後,如何將值存儲在一條線上?

+2

你不要「從json抓住」。你解碼JSON,然後它變成一個普通的舊的JavaScript數據結構,就像其他任何其他。 –

+0

謝謝!對不起,請問,但是你有一些我可以看看的例子,以更好地瞭解如何實現你所說的內容嗎? – Edon

+0

這個例子在任何關於'JSON.parse'的討論中,或者如何訪問JavaScript對象中的屬性,和/或如何從節點程序中「需要」JSON。 – 2016-07-25 16:48:19

回答

3

除非你的json文件是愚蠢的大,你可以只需要它,然後它是一個內存JS對象。

var obj = require('./dataOut.json'); 

// first element 
console.log(obj[0]); 
+1

有趣!我不知道這可以做到,我的JSON不是那麼大,所以這可能工作 – Edon