49 votes

Mettre à jour un objet JSON à l'aide de Javascript

Comment puis-je mettre à jour dynamiquement l'objet JSON suivant à l'aide de javascript ou de Jquery ?

 var jsonObj = [{'Id':'1','Username':'Ray','FatherName':'Thompson'},  
               {'Id':'2','Username':'Steve','FatherName':'Johnson'},
               {'Id':'3','Username':'Albert','FatherName':'Einstein'}]

Je voudrais mettre à jour dynamiquement le nom d'utilisateur en « Thomas » où « Id » est « 3 ».

Comment puis-je y parvenir ?

76voto

Michael Berkowski Points 137903

Une solution JavaScript simple, en supposant que jsonObj contient déjà du JSON :

Faites une boucle à la recherche de l'ID correspondant, définissez le nom d'utilisateur correspondant et break partir de la boucle une fois que l'élément correspondant a été modifié :

 for (var i = 0; i < jsonObj.length; i++) {
  if (jsonObj[i].Id === 3) {
    jsonObj[i].Username = "Thomas";
    break;
  }
}

Le voici sur jsFiddle.

Voici la même chose enveloppée dans une fonction :

 function setUsername(id, newUsername) {
  for (var i = 0; i < jsonObj.length; i++) {
    if (jsonObj[i].Id === id) {
      jsonObj[i].Username = newUsername;
      return;
    }
  }
}

// Call as
setUsername(3, "Thomas");

6voto

qiao Points 7444

itérez simplement sur la liste puis vérifiez les propriétés de chaque objet.

 for (var i = 0; i < jsonObj.length; ++i) {
    if (jsonObj[i]['Id'] === '3') {
        jsonObj[i]['Username'] = 'Thomas';
    }
}

5voto

$(document).ready(function(){        
    var jsonObj = [{'Id':'1','Username':'Ray','FatherName':'Thompson'},  
               {'Id':'2','Username':'Steve','FatherName':'Johnson'},
               {'Id':'3','Username':'Albert','FatherName':'Einstein'}];

    $.each(jsonObj,function(i,v){       
      if (v.Id == 3) {
        v.Username = "Thomas";
        return false;
      }
    });

alert("New Username: " + jsonObj[2].Username);

});

2voto

Rodik Points 2982

utilisation:

 var parsedobj = jQuery.parseJSON( jsonObj);

Cela ne sera utile que si vous n'avez pas besoin que le format reste dans la chaîne. sinon, vous devrez le reconvertir en JSON à l'aide de la bibliothèque JSON.

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