mam plik zewnętrzny - plik.json o wartościach:
{
"number": "value"
}
kiedy uruchamiam funkcję, idzie i przepisuje plik z nową wartością. I dostaję:
{
"number": "newValue"
}
chciałbym to zrobić dołącz dane do poprzedniego pliku:
{
"number": "value"
},
{
"number2": "newValue"
}
Jak mogę osiągnąć coś takiego? Myślę, że muszę użyć .push (), ale daje mi to niezdefiniowane.
To jest kod, którego obecnie używam.
var urlList = require("./urlList.json");
app.get("/hello", function(req, res){
var cat = 5;
catNumber = "number" + cat;
url = urlList[catNumber];
request(url, function(error, response, html){
if(!error){
var $ = cheerio.load(html);
var number;
var json = { };
$(".content").filter(function(){
var data = $(this);
title = data.children().first().text().trim();
json.number = url;
})
}
fs.writeFile("file.json", JSON.stringify(json, null, 4), function(err){
console.log("File successfully written!");
})
Odpowiedzi:
0 dla odpowiedzi № 1Jeśli przechowujesz JSON w pliku jako tablicę taką jak ta:
[
{
"number": "value"
}
]
Następnie możesz odczytać w JSON jako tablicę, a następnie dokonać na nim modyfikacji:
let fs = require("fs");
fs.readFile("./file.json", (err, file) => {
let jsonArray = JSON.parse(file);
jsonArray.push({
number2 : "newValue"
});
fs.writeFile("file.json", JSON.stringify(jsonArray));
});