JSON进阶七——AOP

小弟最近很迷恋JSON,以至于俺媳妇也吃起JSON的醋来(开个玩笑,呵呵)。至于小弟举的例子算不算面向切面(AOP),仁者见仁,智者见智。只是小弟对JSON的一种使用小技巧。

我可能使用AJAX,然后从后台调用一段数据,该数据可能是JSON格式的。

例如:{name:"张三",sex:1}

好了我们需要做的就是把sex转换成中文,当然你可以选择在后台处理,当然我们也会选择在前台完成?

当我们把数据一个一个放进对应的位置事,我们一般会这样做。


var json = {name:"张三",sex:1};

for(
var f in json){

     
if (f == “sex”){

          document.getElementById(f).value 
= josn[f] == 1 ? "" : "";

     } 
else {

          document.getElementById(f).value 
= josn[f];

     }

}

如果在来一个证件类型什么的,是不是我们还要在判断一次?

在来N个,我们是不是用Switch?

不~我们选择更好的方式。

var jsonEnum = {

     sex: 
function(val){

          
var a = val == 1 ? "" : "";

          
return a;

     },

idType: 
function(val){

        var a = null;

       
switch(val){

       ..

          }

     }

};

var jsonBean = {
 json:NaN,
  Get: 
function(key){
       
if (jsonEnum[key]){
             
return jsonEnum[key](this.json[key]);
        }
        
else {
        
return this.json[key];
        }

   }
};

var json = {name:"张三",sex:1,idType:1};

jsonBean.json 
= json;
for(var f in json){
          alert(jsonBean.Get(f));

}

jsonBean我们姑且可以把这个东西看成类似于Spring的容器,同时把jsonEnum当成一个配置文件,以及可扩展的类?同样的我们是不是可以通过一定的方式,做数据验证,组合等等,只要我们有这样一个“容器”JSON。

posted @ 2009-03-02 16:26  KangC  阅读(2798)  评论(18编辑  收藏  举报