在jQuery中 关于json空对象筛选替换
2013-04-15 00:00
716 查看
Requirement:
一个json object,并且可能包含一些空值或者空字符串,在页面显示的时候希望遇到空值显示“N/A”,但是有一部分值是允许空值的。因此希望通过筛选将空值设为“N/A”.例如希望学生的“age”和“score”如果为空显示“N/A”,而“sex”或者“comment”为空则不做处理。
Method 1 结果
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030184/763d7b67c7679644eb4bc9f2670aed95.png)
Method 2 结果
一个json object,并且可能包含一些空值或者空字符串,在页面显示的时候希望遇到空值显示“N/A”,但是有一部分值是允许空值的。因此希望通过筛选将空值设为“N/A”.例如希望学生的“age”和“score”如果为空显示“N/A”,而“sex”或者“comment”为空则不做处理。
var student = { "name" : "Guo", "sex" : "", "age" : "", "num ": 01, "scores" : [ { "subject" : "English", "score" : 50, "comment" : "" }, { "subject" : "Computer", "score" : "", "comment" : "absent" } ] }; var exclude = ["sex", "comment"]; // method 1 to validate obj validateObj1 = function(obj, excluded){ var value; for(var key in obj){ value = obj[key]; if($.isArray(value)){ obj = validateArray1(obj, key, excluded); }else if(($.inArray(key, excluded) == -1) && ($.isBlank(value))){ obj[key] = "N/A"; } } return obj; } validateArray1 = function(obj, key, excluded){ var subValue; for(var i = 0, length = obj[key].length; i < length; i++){ for(var subKey in obj[key][i]){ subValue = obj[key][i][subKey]; if(($.inArray(subKey, excluded) == -1) && ($.isBlank(subValue))){ obj[key][i][subKey] = "N/A"; } } } return obj; } // method 2 to validate obj validateObj2 = function(obj, excluded){ $.each(obj ,function(key, value){ if($.isArray(value)){ obj = validateArray2(obj, key, excluded); }else if(isInvalid(key, value, excluded)){ obj[key] = "N/A"; } }); return obj; } validateArray2 = function(obj, key, excluded){ for(var i = 0, length = obj[key].length; i < length; i++){ $.each(obj[key][i] ,function(subKey, subValue){ if(isInvalid(subKey, subValue, excluded)){ obj[key][i][subKey] = "N/A"; } }); } return obj; } isInvalid = function(key, value, excluded){ return (($.inArray(key, excluded) == -1) && ($.isBlank(value))) ? true : false; } $.isBlank = function(obj){ return(!obj || $.trim(obj) === ""); };
Method 1 结果
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030184/763d7b67c7679644eb4bc9f2670aed95.png)
Method 2 结果
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030184/791322fcb5e61c1a68ff4a3ce2a4e82c.png)
相关文章推荐
- 在jQuery中 关于json空对象筛选替换
- jQuery json空对象筛选替换
- Jquery遍历筛选数组的几种方法和遍历解析json对象|Map()方法详解
- jquery筛选数组之grep、each、inArray、map的用法及遍历json对象
- jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
- jquery遍历筛选数组的几种方法和遍历解析json对象
- jquery遍历筛选数组的几种方法和遍历解析json对象
- jquery遍历筛选数组的几种方法和遍历解析json对象
- $.grep ,$.map,jquery筛选数组之grep、each、inArray、map的用法及遍历json对象
- jquery遍历筛选数组的几种方法和遍历解析json对象
- jquery遍历筛选数组的几种方法和遍历解析json对象
- 关于使用jquery与后台交互,传递json对象的使用方法
- 关于ASP.NET下,JQuery+AJAX使用JSON返回对象集合List数据的总结
- jQuery中json空对象替换实现程序
- jquery筛选数组之grep、each、inArray、map的用法及遍历json对象
- JQuery 中 关于 json 对象用法的总结
- Jquery遍历筛选数组的几种方法和遍历解析json对象|Map()方法详解
- jquery筛选数组之grep、each、inArray、map的用法及遍历json对象
- jquery筛选数组之grep、each、inArray、map的用法及遍历json对象
- Jquery遍历筛选数组的几种方法和遍历解析json对象|Map()方法详解