在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 相关文章推荐
myEvent.js javascript跨浏览器事件框架
Oct 24 Javascript
Javascript的各种节点操作实例演示代码
Jun 27 Javascript
JS通过相同的name进行表格求和代码
Aug 18 Javascript
javascript firefox 自动加载iframe 自动调整高宽示例
Aug 27 Javascript
textarea焦点的用法实现获取焦点清空失去焦点提示效果
May 19 Javascript
Windows 系统下安装和部署Egret的开发环境
Jul 31 Javascript
jquery+ajax请求且带返回值的代码
Aug 12 Javascript
jquery实现图片放大镜功能
Nov 23 Javascript
ES6 javascript的异步操作实例详解
Oct 30 Javascript
微信小程序实现基于三元运算验证手机号/姓名功能示例
Jan 19 Javascript
微信小程序 WXML节点信息查询详解
Jul 29 Javascript
js实现电灯开关效果
Jan 19 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
2020最新CPU的性能排名
2020/04/02 数码科技
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
2011/05/29 PHP
详解WordPress中添加和执行动作的函数使用方法
2015/12/29 PHP
php 使用curl模拟ip和来源进行访问的实现方法
2017/05/02 PHP
jquery tab标签页的制作
2010/05/10 Javascript
Js获取事件对象代码
2010/08/05 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
javascript工具库代码
2012/03/29 Javascript
jquery显示和隐藏div特效实例
2013/02/27 Javascript
JS 日期比较大小的简单实例
2014/01/13 Javascript
自定义jquery模态窗口插件无法在顶层窗口显示问题
2014/05/29 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
javascript格式化日期时间方法汇总
2015/06/19 Javascript
js闭包所用的场合以及优缺点分析
2015/06/22 Javascript
js获取iframe中的window对象的实现方法
2016/05/20 Javascript
JavaScript Ajax编程 应用篇
2016/07/02 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
2017/06/28 Javascript
Vue 动态设置路由参数的案例分析
2018/04/24 Javascript
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
2019/04/04 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
js实现九宫格抽奖
2020/03/19 Javascript
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
python实现微信定时每天和女友发送消息
2019/04/29 Python
python+openCV调用摄像头拍摄和处理图片的实现
2019/08/06 Python
Python通过递归获取目录下指定文件代码实例
2019/11/07 Python
python+OpenCV实现图像拼接
2020/03/05 Python
基于PyQT实现区分左键双击和单击
2020/05/19 Python
CSS3控制HTML元素动画效果
2014/02/08 HTML / CSS
傲盾软件面试题
2015/08/17 面试题
人力资源管理专业毕业生推荐信
2013/11/07 职场文书
优秀幼教自荐信
2014/02/03 职场文书
工会趣味活动方案
2014/08/18 职场文书
2014年办公室工作总结范文
2014/11/12 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书