web-dev-qa-db-fra.com

Comment visualiser un objet avec une alerte ()

J'ai essayé de faire un débogage mais j'ai des problèmes. Maintenant, j'essaie avec alert(). Par exemple, je veux voir la valeur de:

var product = { ProductName: $('!Answer_Response[0]').val(),
                  UnitPrice: $('#Price').val(),
                  Stock: $('#Stock').val()
              };

Quand je dis alert(product), cela me donne simplement [object Object]. Comment puis-je faire en alerte montrer ce qui est vraiment là?

31
Melova1985

vous pouvez utiliser la méthode JSON.stringify() trouvée dans les navigateurs modernes et fournie par json2.js .

var myObj = {"myProp":"Hello"};
alert (JSON.stringify(myObj));    // alerts {"myProp":"Hello"};

ou 

vérifiez également cette bibliothèque: http://devpro.it/JSON/files/JSON-js.html

67
Pranay Rana

vous pouvez utiliser la méthode toSource comme celle-ci 

alert(product.toSource());
11
aya

Si vous souhaitez afficher facilement le contenu des objets lors du débogage, installez un outil tel que Firebug et utilisez console.log:

console.log(product);

Si vous souhaitez afficher les propriétés de l'objet lui-même, ne alert pas, mais ses propriétés:

alert(product.ProductName);
alert(product.UnitPrice);
// etc... (or combine them)

Comme dit, si vous voulez vraiment booster votre débogage JavaScript, utilisez Firefox avec l'addon Firebug. Vous vous demanderez comment vous avez déjà débogué votre code auparavant.

4
Aron Rotteveel

C'est ce que j'utilise:

var result = [];
for (var l in someObject){
  if (someObject.hasOwnProperty(l){
    result.Push(l+': '+someObject[l]);
  }
}
alert(result.join('\n'));

Si vous souhaitez également afficher des objets imbriqués, vous pouvez utiliser quelque chose de récursif:

function alertObject(obj){
 var result = [];
 function traverse(obj){
 for (var l in obj){
   if (obj.hasOwnProperty(l)){
     if (obj[l] instanceof Object){
       result.Push(l+'=>[object]');
       traverse(obj[l]);
     } else {
       result.Push(l+': '+obj[l]);
     }
   }
  }
 }
 traverse(obj);
 return result;
}
2
KooiInc

Vous devriez vraiment utiliser la console de Firebug ou Webkit pour le débogage. Ensuite, vous pouvez simplement faire console.debug(product); et examiner l’objet.

2
Znarkus
alert (product.UnitName + " " + product.UnitPrice + " " + product.Stock)

ou bien créez une méthode toString () sur votre objet et appelez

alert(product.toString())

Mais je suis d’accord avec d’autres affiches - si vous voulez déboguer, alors firebug ou F12 sur IE9 ou chrome et utilisez console.log est le bon choix

0
dice

En fonction de la propriété qui vous intéresse:

alert(product.ProductName);
alert(product.UnitPrice);
alert(product.Stock);
0
Flash
alert( JSON.stringify(product) );
0
Blazes

Utilisez la méthode native JSON.stringify en Javascript. Pour mieux le visualiser, vous pouvez utiliser, par exemple: JSON.stringify(obj,null, 4)

var obj = {data:[{"empmenuid":"1","empid":null,"deptid":"66","aliasid":"66","firstname":"66","lastname":"66","sin":"66","status":"66","empclass":"66","hiredate":"66","seneoritydate":"66","separationdate":"66"},{"empmenuid":"3","empid":null,"deptid":"12","aliasid":"12","firstname":"12","lastname":"12","sin":"12","status":"12","empclass":"12","hiredate":"12","seneoritydate":"12","separationdate":"12","recalldate":"12","martialstatus":"12","gender":"12","pager":"12","locid":"12","jobtitle":"12","jobtitlestart":"12","fullpart":"12","manager":"12","managername":"12","middlename":"12","nickname":"12","paytype":"12","payfreq":"12"}],
recordType : 'object'};

alert(JSON.stringify(obj,null, 4));

0
Ruhul Amin