在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 相关文章推荐
js动态创建、删除表格示例代码
Aug 07 Javascript
JS获取html对象的几种方式介绍
Dec 05 Javascript
Backbone.js中的集合详解
Jan 14 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
Mar 21 Javascript
深入解读JavaScript中的Hoisting机制
Aug 12 Javascript
JS iFrame加载慢怎么解决
May 13 Javascript
AngularJS基础 ng-csp 指令详解
Aug 01 Javascript
Bootstrap Modal遮罩弹出层代码分享
Nov 21 Javascript
label+input实现按钮开关切换效果的实例
Aug 16 Javascript
vue之debounce属性被移除及处理详解
Nov 13 Javascript
JavaScript实现简单的计算器
Jan 16 Javascript
js中forEach,for in,for of循环的用法示例小结
Mar 14 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中变量引用与变量销毁机制分析
2014/11/15 PHP
PHP获取二维数组中某一列的值集合
2015/12/25 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
javascript之dhDataGrid Ver2.0.0代码
2007/07/01 Javascript
基于jquery+thickbox仿校内登录注册框
2010/06/07 Javascript
调试Node.JS的辅助工具(NodeWatcher)
2012/01/04 Javascript
javascript控制swfObject应用介绍
2012/11/29 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
2015/03/17 Javascript
jQuery Ajax实现跨域请求
2017/01/21 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
2017/01/23 Javascript
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
React native ListView 增加顶部下拉刷新和底下点击刷新示例
2018/04/27 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
JavaScript引用类型RegExp基本用法详解
2018/08/09 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
layer关闭当前窗口页面以及确认取消按钮的方法
2019/09/09 Javascript
js仿360开机效果
2019/12/26 Javascript
微信小程序动态添加和删除组件的现实
2020/02/28 Javascript
Python性能优化技巧
2015/03/09 Python
python常用知识梳理(必看篇)
2017/03/23 Python
python分治法求二维数组局部峰值方法
2018/04/03 Python
使用python读取csv文件快速插入数据库的实例
2018/06/21 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
Python多重继承之菱形继承的实例详解
2020/02/12 Python
Python自动登录QQ的实现示例
2020/08/28 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
python-图片流传输的思路及示例(url转换二维码)
2020/12/21 Python
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
Superdry极度乾燥官网:日本街头风格,纯英国制造品牌
2016/10/31 全球购物
缓刑人员的思想汇报
2014/01/11 职场文书
亲子拓展活动方案
2014/02/20 职场文书
学生考试舞弊检讨书
2015/01/01 职场文书
鲁迅故里导游词
2015/02/05 职场文书
关于教师节的广播稿
2015/08/19 职场文书
一年级下册数学教学反思
2016/02/16 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server