我想使用POST请求提供的数据将JSON元素添加到JSON文件。这种已经完成的工作,我只是想不通如何将id添加到数据中,该怎么做?
我尝试了很多,我创建了一个完全新的JSON对象,并尝试将其添加到我的文件中,该对象不起作用,并且我尝试将数据添加到POST请求给定的数据中,如下所示:body + = {“ id “:10};会产生未定义的错误。
这是我处理POST请求的方式:
} else if (req.method === 'POST' && pathname === 'Kunden') {
res.writeHead(200, {
'Content-Type' : 'application/json'
});
var body = '';
req.on('data', function(data) {
body += data;
});
req.on('end', function() {
fs.readFile('Kunden.json', function(err, kundenJSON) {
if (err) {
console.log(err);
}
var kunden = JSON.parse([kundenJSON]);
kunden.kunde.push(JSON.parse(body));
kundenJSON = JSON.stringify(kunden);
fs.writeFile('Kunden.json', kundenJSON, function(err) {
if(err) {console.log(err);
}});
});
});
}
}).listen(8081);
这是我已经准备好的现有JSON文件:
{"kunde":[{"id":1,"name":"Customer1"},{"id":2,"name":"Customer2"},{"id":3,"name":"Customer3"}]}
基本上,我从POST请求中获得“名称”,我必须在其上添加以下ID(在第一个请求中,该ID为4,然后为5,依此类推),然后将其添加到我的文件中。
最后,我的文件应如下所示:
{"kunde":[{"id":1,"name":"Customer1"},{"id":2,"name":"Customer2"},{"id":3,"name":"Customer3"},{"id":4,"name":PostData"}]}
但是我现在只能管理这个:
{"kunde":[{"id":1,"name":"Customer1"},{"id":2,"name":"Customer2"},{"id":3,"name":"Customer3"},{"name":PostData"}]}
答案 0 :(得分:0)
如果我对您的理解正确,则在将新对象保存到文件时要添加它和id。这基本上很容易,但是您还应该知道如何正确跟踪ID。
var kunden = JSON.parse([kundenJSON]);
var newKunde = JSON.parse(body);
newKunde.id = 4;
kunden.kunde.push(newKunde);
kundenJSON = JSON.stringify(kunden);
我要说的问题是,如何知道新ID?您可以只说newId = kunden.kunde.length + 1
-但是如果以后删除一个,则ID将重复。您还需要考虑将来如何处理唯一ID。