3 votes

Ajouter ou ajouter un JSON imbriqué dans un autre objet JSON

Je suis en train d'utiliser typescript, j'ai ci-dessous une réponse JSON existante provenant d'une API,

{
    "product":{
    "prodId": "PROD100"
    },
    "packages":{
    "pkgId": "PKG137"
    },
    "discount":"50",
    "periodFrom":null,
    "periodTo":null,
    "totalAmount": "599",
    "isActive": "false"
}

J'ai un autre petit JSON que je veux ajouter au-dessus de celui-ci

"customer":{
    "custId":"CUST1002"
    },

Structure Finale:

{
    "customer":{
    "custId":"1002"
    },
    "product":{
    "prodId": "PROD100"
    },
    "packages":{
    "pkgId": "PKG137"
    },
    "discount":"50",
    "periodFrom":null,
    "periodTo":null,
    "totalAmount": "599",
    "isActive": "false"
}

Comment puis-je obtenir le même résultat en utilisant push ou unshift, ou existe-t-il une meilleure pratique pour cela en JavaScript ou en typescript. Veuillez me suggérer

4voto

blaumeise20 Points 1877

Vous pouvez utiliser la syntaxe spread:

const newJSON = { ...toAppend, ...original };

const original = {
  "product": {
    "prodId": "PROD100"
  },
  "packages": {
    "pkgId": "PKG137"
  },
  "discount": "50",
  "periodFrom": null,
  "periodTo": null,
  "totalAmount": "599",
  "isActive": "false"
}

const toAppend = {
  "customer": {
    "custId": "CUST1002"
  },
}
const newJSON = { ...toAppend, ...original };
console.log(newJSON);

1voto

Majed Badawi Points 17281

En utilisant l'opérateur de propagation :

const obj = {
  "product": { "prodId": "PROD100" },
  "packages": { "pkgId": "PKG137" },
  "discount": "50",
  "periodFrom": null,
  "periodTo": null,
  "totalAmount": "599",
  "isActive": "false"
};
const toAdd = {
  "customer": { "custId":"CUST1002" }
};

const res = { ...toAdd, ...obj };

console.log(res);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X