Tengo un objeto que estoy tratando de escribir en un archivo json como este:
let sample_obj={k:v,items:{a:1,b:2,d:4}}; sample_obj['items']['c']=3; fs.writeFile('data.json',JSON.stringify(sample_obj)); pero cuando abro el archivo data.json muestra:
{k:v,items:{a:1,b:2,d:4,c:3}} pero necesito que el orden sean items:{a:1,b:2,c:3,d:4} pero parece que el orden que está escrito en el archivo es el mismo que el orden en que estaba la clave y el par adicional
¿Hay alguna forma de escribir en el archivo ordenado?
Por supuesto que lo hay si está dispuesto a serializarlo usted mismo. Pero los campos en los objetos JSON, por definición, no están ordenados. Entonces, si está pensando en esto como un archivo JSON, entonces no tiene sentido escribirlo ordenado, porque cualquiera que lea el archivo tampoco debe confiar en el orden de serialización. Si uno fuera pedante, incluso podría decir que su archivo ya no sería JSON si el orden importara, y solo se vería engañosamente similar.
Para resumir: no lo hagas. Si necesita ordenar algo, conviértalo en una matriz, por ejemplo:
items: [ {key: 'a', value: 1}, {key: 'b', value: 2}, {key: 'c', value: 3}, {key: 'd', value: 4} ]