2009-12-09 88 views
1

使用ajax json响应构建一些html以放置在网页中。 偶尔我会在我的json中遇到一个空值。 这会导致将一个空对象放入html中。在json或javascript中处理null null

我不希望检查每个值不是对象,因为这看起来效率不高。 有没有更好的方法? 我的代码是这样的

 
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); 

回答

2

如果要指定默认值的时候都无效,你可以这样做:

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

无关你的问题,你看着的实现jQuery templating

+4

当成员'null',也当他们'0','FALSE','undefined',将设置不仅*默认*值,空字符串和'NaN'。 – CMS 2009-12-09 23:54:00

+0

是的,警惕! – 2009-12-09 23:55:40

+0

你上面写的代码是有道理的,它应该可以工作,但是当使用var firstVar = jsonObj.firstVar ||时,我仍然得到了“[object object]”的响应。 ''; - 当我提醒(firstVar.toSource)时,我得到({})。任何想法,为什么我仍然得到这个? – pedalpete 2009-12-10 19:50:25

1

你可以使用一个三元操作符:

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