Eu estou trabalhando em um projeto Node.js usando JavaScript. Meu problema é que eu tenho uma matriz com alguns dados, e eu quero usar esses dados na matriz para criar um arquivo JSON.
Isto é o que eu tenho:
var cars = ["Saab", "Volvo", "BMW"];
É isso que eu quero:
{
"cars": [
{
"mark" : "Saab"
},
{
"mark" : "Volvo"
},
{
"mark" : "BMW"
}
]
}
Java tem uma biblioteca chamada Jackson que ajuda com isso. Does Node.js não tem algo semelhante?
Por favor, se a questão não faz jus às regras, me avise.
Isto é muito simples de fato em Node.js, você pode usar o JSON métodos stringify e analisar para criar seqüências de objetos e arrays. Podemos usar primeiro reduzir para criar um objeto de carro a partir da matriz de carro.
Estou usando JSON.stringify () com null, 4 como os últimos argumentos para pretty-print para o arquivo. Se quiséssemos imprimir tudo para uma linha, que tinha acabado de usar JSON.stringify (carObj).
Por exemplo:
const fs = require("fs");
const cars = ["Saab", "Volvo", "BMW"];
const carObj = cars.reduce((map, car) => {
map.cars.push( { mark: car} );
return map;
}, { cars: []})
// Write cars object to file..
fs.writeFileSync("./cars.json", JSON.stringify(carObj, null, 4));
// Read back from the file...
const carsFromFile = JSON.parse(fs.readFileSync("./cars.json", "utf8"));
console.log("Cars from file:", carsFromFile);
O arquivo cars.json será parecido com isso:
{
"cars": [
{
"mark": "Saab"
},
{
"mark": "Volvo"
},
{
"mark": "BMW"
}
]
}