154 votes

Ajouter un nouvel élément de tableau à un objet JSON

J'ai un objet au format JSON que j'ai lu à partir d'un fichier JSON que j'ai dans une variable appelée teamJSON, qui ressemble à ceci :

{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"}]}

Je veux ajouter un nouvel élément au tableau, tel que

{"teamId":"4","status":"pending"}

pour arriver à

{"theTeam":[{"teamId":"1","status":"pending"},{"teamId":"2","status":"member"},{"teamId":"3","status":"member"},{"teamId":"4","status":"pending"}]}

avant d'écrire de nouveau dans le fichier. Quel est un bon moyen d'ajouter le nouvel élément ? J'ai presque réussi mais tous les guillemets étaient échappés. J'ai cherché une bonne réponse sur SO mais aucune ne couvre tout à fait ce cas. Toute aide est appréciée.

0voto

Musa Points 820

Par exemple, voici un élément de type bouton pour ajouter un article au panier avec les attributs appropriés pour enregistrer dans localStorage.

'Ajouter au panier'

var productArray=[];

$(document).on('click','[cartBtn]',function(e){
  e.preventDefault();
  $(this).html('Ajouté au panier');
  console.log('Article ajouté');
  var productJSON={"id":$(this).attr('pr_id'), "nameEn":$(this).attr('pr_name_en'), "price":$(this).attr('pr_price'), "image":$(this).attr('pr_image')};

  if(localStorage.getObj('product')!==null){
    productArray=localStorage.getObj('product');
    productArray.push(productJSON);  
    localStorage.setObj('product', productArray);  
  }
  else{
    productArray.push(productJSON);  
    localStorage.setObj('product', productArray);  
  }

});

Storage.prototype.setObj = function(key, value) {
    this.setItem(key, JSON.stringify(value));
}

Storage.prototype.getObj = function(key) {
    var value = this.getItem(key);
    return value && JSON.parse(value);
}

Après avoir ajouté l'objet JSON au tableau, le résultat est (dans LocalStorage) :

[{"id":"99","nameEn":"Nom du produit1","price":"767","image":"1462012597217.jpeg"},{"id":"93","nameEn":"Nom du produit2","price":"76","image":"1461449637106.jpeg"},{"id":"94","nameEn":"Nom du produit3","price":"87","image":"1461449679506.jpeg"}]

après cette action, vous pouvez facilement envoyer les données au serveur sous forme de liste en Java

Un exemple de code complet est disponible ici

Comment puis-je stocker un panier simple en utilisant localStorage?

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