在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 相关文章推荐
Javascript 篱式条件判断
Aug 22 Javascript
javascript 获取页面的高度及滚动条的位置的代码
May 06 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
Aug 20 Javascript
AngularJS模块管理问题的非常规处理方法
Apr 29 Javascript
js简单实现网页换肤功能
Apr 07 Javascript
JavaScript 基础表单验证示例(纯Js实现)
Jul 20 Javascript
Vue中正确使用jQuery的方法
Oct 30 jQuery
快速搭建vue2.0+boostrap项目的方法
Apr 09 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
Aug 16 Javascript
vue 实现路由跳转时更改页面title
Nov 05 Javascript
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
Feb 21 Javascript
JavaScript 中判断变量是否为数字的示例代码
Oct 22 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,ajax实现分页
2008/03/27 PHP
PHP中simplexml_load_string函数使用说明
2011/01/01 PHP
PHP学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
php cc攻击代码与防范方法
2012/10/18 PHP
php使用qr生成二维码的示例分享
2014/01/20 PHP
PHP goto语句简介和使用实例
2014/03/11 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
2016/03/17 PHP
详解Yii2.0使用AR联表查询实例
2017/06/16 PHP
jquery-easyui关闭tab自动切换到前一个tab
2010/07/29 Javascript
javascript中length属性的探索
2011/07/31 Javascript
解析window.open的使用方法总结
2013/06/19 Javascript
jquery实现点击页面计算点击次数
2015/01/23 Javascript
高性能JavaScript模板引擎实现原理详解
2015/02/05 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
2017/06/01 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
详解AngularJS1.x学习directive 中‘&amp; ’‘=’ ‘@’符号的区别使用
2017/08/23 Javascript
Vue中自定义全局组件的实现方法
2017/12/08 Javascript
vue用递归组件写树形控件的实例代码
2018/07/19 Javascript
[01:02:18]VGJ.S vs infamous Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
基于python的多进程共享变量正确打开方式
2018/04/28 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
python将unicode和str互相转化的实现
2020/05/11 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
Python几种常见算法汇总
2020/06/02 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
采用怎样的方法保证数据的完整性
2013/12/02 面试题
小学生防溺水广播稿
2014/01/12 职场文书
六个一活动实施方案
2014/03/21 职场文书
园林设计专业毕业生求职信
2014/03/23 职场文书
葬礼司仪主持词
2014/03/31 职场文书
小学生个人先进事迹材料
2014/05/08 职场文书
2014年纠风工作总结
2014/12/08 职场文书
文体活动总结
2015/02/04 职场文书
经理聘任证明
2015/03/02 职场文书
综合素质评价思想道德自我评价
2015/03/09 职场文书
开机音效回归! Windows 11重新引入开机铃声
2021/11/21 数码科技