2013-04-02 99 views
0

我對JS和Node的世界很陌生,所以這看起來可能是一件相當容易的事情,但這是我似乎無法工作的事情。基於Node.js中的鍵的返回值

說我有一個JSON文件

{ 
"0": "somestring1", 
"1": "somestring2", 
"2": "somestring3", 
"3": "somestring4", 
"4": "somestring5", 
"5": "somestring6", 
"6": "somestring7" 
} 

,在我server.js文件我加載文件,像這樣

var fs = require('fs') 

var parsedJson = fs.readFile('./jsonfile.json', function (err, data) 
{ 
    res.write(data); 
    res.end(); 
}) 

擊中服務器返回所有的以下JSON例子JSON(如預期),但我想要做的是解析文件,並返回一個單一的值基於一個關鍵,所以沿線的東西:

for (var entry in data) 
{ 
    if (entry.key == 0) 
    { 
     res.write(thing.value); 
     //"somestring1" would be sent here 
    } 
} 

這種事情在JS/Node中是如何完成的。我所嘗試過的一切似乎都不起作用

謝謝!

Kris

+2

'變種解析= JSON.parse(數據); res.write(parsed [0]);' –

+0

@AndyRay YUNO提交答案? –

+0

謝謝,我知道這將是一件非常簡單的事情,Post作爲答案,我會將其標記爲正確 – lookitskris

回答

0

也許是這樣的嗎?

var http = require('http'); 
var fs = require('fs'); 

var data = JSON.parse(fs.readFileSync('data.json')); 

var server = http.createServer(function(req, res) { 
    var key = req.url.replace('/', ''); 
    var value = data[key]; 

    if (value) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end(value); 
    } else { 
    res.writeHead(404, {'Content-Type': 'text/plain'}); 
    res.end('Not Found'); 
    } 
}); 

server.listen(1337, '127.0.0.1'); 

然後在命令行上:

$ curl localhost:1337/1 
somestring2 

$ curl localhost:1337/x 
Not Found