在jQuery中 关于json空对象筛选替换


Posted in Javascript onApril 15, 2013

Requirement:

一个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 结果

 在jQuery中 关于json空对象筛选替换

Method 2 结果

 在jQuery中 关于json空对象筛选替换

Javascript 相关文章推荐
Prototype ObjectRange对象学习
Jul 19 Javascript
风吟的小型JavaScirpt库 (FY.JS).
Mar 09 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
Jan 26 Javascript
JavaScript中的ubound函数使用实例
Nov 04 Javascript
使用requestAnimationFrame实现js动画性能好
Aug 06 Javascript
AngularJs表单验证实例详解
May 30 Javascript
jQuery处理XML文件的几种方法
Jun 14 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
Nov 22 Javascript
JS动态生成年份和月份实例代码
Feb 04 Javascript
javascript实现QQ空间相册展示源码
Dec 12 Javascript
vue实现可视化可拖放的自定义表单的示例代码
Mar 20 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
Apr 30 Javascript
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
Apr 15 #Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
Apr 15 #Javascript
深入了解javascript中的prototype与继承
Apr 14 #Javascript
谈谈JavaScript中的函数与闭包
Apr 14 #Javascript
在新窗口打开超链接的方法小结
Apr 14 #Javascript
JS中setTimeout()的用法详解
Apr 14 #Javascript
js验证是否为数字的总结
Apr 14 #Javascript
You might like
php实现模拟登陆方正教务系统抓取课表
2015/05/19 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
jQuery提交表单ajax查询实例代码
2012/10/07 Javascript
jquery中load方法的用法及注意事项说明
2014/02/22 Javascript
javascript算法题:求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2015/04/01 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
2016/01/27 Javascript
jquery操作select元素和option的实例代码
2016/02/03 Javascript
js点击返回跳转到指定页面实现过程
2020/08/20 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
D3.js实现折线图的方法详解
2016/09/21 Javascript
jQuery电话号码验证实例
2017/01/05 Javascript
BootStrap便签页的简单应用
2017/01/06 Javascript
ionic2懒加载配置详解
2017/09/01 Javascript
微信小程序wx:for循环的实例详解
2018/10/07 Javascript
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
2019/01/27 Javascript
Vue.js仿Select下拉框效果
2020/02/18 Javascript
[05:05]第三天的dota2
2013/07/29 DOTA
[30:00]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第二场 11.28
2020/12/01 DOTA
使用 Python 实现文件递归遍历的三种方式
2018/07/18 Python
python 字符串常用方法汇总详解
2019/09/16 Python
wxPython实现列表增删改查功能
2019/11/19 Python
Python如何定义接口和抽象类
2020/07/28 Python
如何利用input事件来监听移动端的输入
2016/04/15 HTML / CSS
米兰网婚纱礼服法国网上商店:Milanoo法国
2016/08/20 全球购物
智能钱包:Ekster
2019/11/21 全球购物
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
山海经纬软件测试笔试题和面试题
2013/04/02 面试题
幼儿园毕业典礼主持词
2014/03/21 职场文书
运动会的口号
2014/06/09 职场文书
低碳生活的宣传标语
2014/06/23 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
敬业奉献模范事迹材料
2014/12/24 职场文书
爱护环境建议书
2015/09/14 职场文书
nginx基于域名,端口,不同IP的虚拟主机设置的实现
2021/03/31 Servers
解析探秘fescar分布式事务实现原理
2022/02/28 Java/Android