在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 相关文章推荐
浅析return false的正确使用
Nov 04 Javascript
jquery使用ajax实现微信自动回复插件
Apr 28 Javascript
JavaScript数据结构和算法之图和图算法
Feb 11 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
Feb 26 Javascript
jQuery层次选择器用法示例
Sep 09 Javascript
Node.js 数据加密传输浅析
Nov 16 Javascript
Bootstrap3 图片(响应式图片&amp;图片形状)
Jan 04 Javascript
微信小程序实现的贪吃蛇游戏【附源码下载】
Jan 03 Javascript
JS打印彩色菱形的实例代码
Aug 15 Javascript
Vue动态生成表格的行和列
Jul 18 Javascript
小程序接入腾讯位置服务的详细流程
Mar 03 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
May 24 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
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
浅析php变量修饰符static的使用
2013/06/28 PHP
php中自定义函数dump查看数组信息类似var_dump
2014/01/27 PHP
php连接与操作PostgreSQL数据库的方法
2014/12/25 PHP
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
JQuery的一些小应用收集
2010/03/27 Javascript
js 手机号码合法性验证代码集合
2012/09/29 Javascript
现代 JavaScript 开发编程风格Idiomatic.js指南中文版
2014/05/28 Javascript
PHP中使用微秒计算脚本执行时间例子
2014/11/19 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
详解Node.js项目APM监控之New Relic
2017/05/12 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
原生JS实现$.param() 函数的方法
2018/08/10 Javascript
Python实现拼接多张图片的方法
2014/12/01 Python
python数组复制拷贝的实现方法
2015/06/09 Python
详解python里使用正则表达式的分组命名方式
2017/10/24 Python
Django框架多表查询实例分析
2018/07/04 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
教你如何编写、保存与运行Python程序的方法
2019/07/12 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
2020/01/13 Python
python实现tail -f 功能
2020/01/17 Python
Python urllib2运行过程原理解析
2020/06/04 Python
AmazeUI图片轮播效果的示例代码
2020/08/20 HTML / CSS
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
毕业生文员求职信
2013/11/03 职场文书
毕业生找工作推荐信
2013/11/21 职场文书
写演讲稿要注意的六件事
2014/01/14 职场文书
财务人员求职自荐书范文
2014/02/10 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书
事业单位岗位说明书
2015/10/08 职场文书
反邪教学习心得体会
2016/01/15 职场文书
2016年中学法制宣传日活动总结
2016/04/01 职场文书
教你怎么用Python处理excel实现自动化办公
2021/04/30 Python