2009-12-09 6 views
1

Im en utilisant une réponse ajax json pour construire du code HTML à placer dans une page Web. Occasionnellement, je vais trouver une valeur vide dans mon json. Il en résulte un objet vide placé dans le code HTML.gérer null en json ou javascript

Je préférerais ne pas vérifier que chaque valeur n'est pas un objet, car cela ne semble pas efficace. Y a-t-il un meilleur moyen? mon code fonctionne comme ceci

 
var firstVar=jsonObj.fristVar; 
var secVar=jsonObj.secVar; 
var thirdVar=jsonObj.thirdVar; 
var fourthVar=jsonObj.fourthVar; 
... 
var htmlResponse='<div class="'+firstVar+'">'+secVar+'<span class="'+thirdVar+'">'+fourthVar+'</span>...'; 
jQuery("body").html(htmlResponse); 

Répondre

2

Si vous souhaitez définir des valeurs par défaut quand ils sont nuls, vous pouvez simplement faire ceci:

var firstVar = jsonObj.firstVar || ''; 
var secVar = jsonObj.secVar || 'No Value'; 
... 

Rien à voir avec votre question, avez-vous regardé une mise en œuvre de jQuery templating?

+4

qui définirait la valeur par défaut * valeur * non seulement lorsque les membres sont 'null', aussi quand ils sont' 0', 'false',' undefined' , chaîne vide et 'NaN'. – CMS

+0

Oui, Caveat emptor! –

+0

Le code que vous avez écrit ci-dessus est logique, et cela devrait fonctionner, mais je reçois toujours la réponse de "[object object]" en utilisant var firstVar = jsonObj.firstVar || ''; - Quand je alerte (firstVar.toSource), j'obtiens ({}). Une idée de pourquoi je reçois toujours ça? – pedalpete

1

Vous pouvez utiliser un opérateur tertiaire:

var firstVar = (jsonObj.fristVar != null) ? jsonObj.fristVar : "some default value";