在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控件的相对独立性
Sep 03 Javascript
JS通过相同的name进行表格求和代码
Aug 18 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
Sep 21 Javascript
Extjs grid添加一个图片状态或者按钮的方法
Apr 03 Javascript
Asp.Net之JS生成分页条的方法
Nov 23 Javascript
零基础轻松学JavaScript闭包
Dec 30 Javascript
vue 1.x 交互实现仿百度下拉列表示例
Oct 21 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
Aug 08 jQuery
Vue2.0学习系列之项目上线的方法步骤(图文)
Sep 25 Javascript
JavaScript遍历数组的方法代码实例
Jan 14 Javascript
JS+css3实现幻灯片轮播图
Aug 14 Javascript
详解template标签用法(含vue中的用法总结)
Jan 12 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
一些花式咖啡的配方
2021/03/03 冲泡冲煮
用 php 编写的日历
2006/10/09 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
转一个日期输入控件,支持FF
2007/04/27 Javascript
基于jQuery的日期选择控件
2009/10/27 Javascript
js设置cookie过期及清除浏览器对应名称的cookie
2013/10/24 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
AngularJS改变元素显示状态
2017/04/20 Javascript
vue如何获取点击事件源的方法
2017/08/10 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
微信小程序排坑指南详解
2018/05/23 Javascript
vue中倒计时组件的实例代码
2018/07/06 Javascript
vue 实现input表单元素的disabled示例
2019/10/28 Javascript
JavaScript实现简单的计算器
2020/01/16 Javascript
Vue-cli打包后如何本地查看的操作
2020/09/02 Javascript
Python的for和break循环结构中使用else语句的技巧
2016/05/24 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
2018/06/13 Python
python使用turtle库绘制树
2018/06/25 Python
tensorflow 变长序列存储实例
2020/01/20 Python
Python3+Selenium+Chrome实现自动填写WPS表单
2020/02/12 Python
基于Python fminunc 的替代方法
2020/02/29 Python
django教程如何自学
2020/07/31 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
PHP开发的一般流程
2013/08/13 面试题
男方父母证婚词
2014/01/12 职场文书
普通员工辞职信
2014/01/17 职场文书
主管会计岗位责任制
2014/02/10 职场文书
职业生涯规划书范文
2014/03/10 职场文书
2014入党积极分子批评与自我批评思想报告
2014/10/06 职场文书
师德承诺书
2015/01/20 职场文书
英文慰问信
2015/02/14 职场文书
法律意见书范文
2015/06/04 职场文书
公司开业主持词
2015/07/02 职场文书