在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 相关文章推荐
cnblogs中在闪存中屏蔽某人的实现代码
Nov 14 Javascript
jquery检测input checked 控件是否被选中的方法
Mar 26 Javascript
jQuery实现的图文高亮滚动切换特效实例
Aug 10 Javascript
第九章之路径分页标签与徽章组件
Apr 25 Javascript
javascript的BOM
May 03 Javascript
Bootstrap表单制作代码
Mar 17 Javascript
bootstrap table实现单击单元格可编辑功能
Mar 28 Javascript
Vue微信项目按需授权登录策略实践思路详解
May 07 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
Nov 21 Javascript
JS实现网站吸顶条
Jan 08 Javascript
JavaScript通如何过RGraph实现动态仪表盘
Oct 15 Javascript
vue+element UI实现树形表格
Dec 29 Vue.js
在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调用三种数据库的方法(3)
2006/10/09 PHP
PHP经典的给图片加水印程序
2006/12/06 PHP
PHP filter_var() 函数 Filter 函数
2012/04/25 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
安装docker和docker-compose实例详解
2019/07/30 PHP
laravel model 两表联查示例
2019/10/24 PHP
用 JSON 处理缓存
2007/04/27 Javascript
js左侧多级菜单动态的解决方案
2010/02/01 Javascript
jQuery之网页换肤实现代码
2011/04/30 Javascript
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
2011/11/30 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
javascript中的previousSibling和nextSibling的正确用法
2015/09/16 Javascript
Node.js中使用socket创建私聊和公聊聊天室
2015/11/19 Javascript
简单了解Backbone.js的Model模型以及View视图的源码
2016/02/14 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
JavaScript中Form表单技术汇总(推荐)
2016/06/26 Javascript
Angular 理解module和injector,即依赖注入
2016/09/07 Javascript
js实现五星评价功能
2017/03/08 Javascript
js判断输入框不能为空格或null值的实现方法
2018/03/02 Javascript
p5.js入门教程和基本形状绘制
2018/03/15 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
2019/07/22 Javascript
Layer+Echarts构建弹出层折线图的方法
2019/09/25 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
2020/12/30 jQuery
跟老齐学Python之用while来循环
2014/10/02 Python
利用Python生成文件md5校验值函数的方法
2017/01/10 Python
Python开发微信公众平台的方法详解【基于weixin-knife】
2017/07/08 Python
django admin.py 外键,反向查询的实例
2019/07/26 Python
如何保障Web服务器安全
2014/05/05 面试题
酒店总经理职务说明书
2014/02/26 职场文书
大专生求职信
2014/06/29 职场文书
摩登时代观后感
2015/06/03 职场文书
家庭教育培训学习心得体会
2016/01/14 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
详解Node.js如何处理ES6模块
2021/05/15 Javascript
opencv 分类白天与夜景视频的方法
2021/06/05 Python