在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实现Sleep函数的代码
Mar 04 Javascript
JQuery 将元素显示在屏幕的中央的代码
Feb 27 Javascript
每天一篇javascript学习小结(基础知识)
Nov 10 Javascript
javascript创建含数字字母的随机字符串方法总结
Aug 01 Javascript
vue中设置height:100%无效的问题及解决方法
Jul 27 Javascript
对Vue beforeRouteEnter 的next执行时机详解
Aug 25 Javascript
基于axios 解决跨域cookie丢失的问题
Sep 26 Javascript
浅谈HTTP 缓存的那些事儿
Oct 17 Javascript
vue实现微信分享功能
Nov 28 Javascript
Vue数据双向绑定底层实现原理
Nov 22 Javascript
js中apply和call的理解与使用方法
Nov 27 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
Oct 29 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
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
2012/08/09 PHP
codeigniter自带数据库类使用方法说明
2014/03/25 PHP
PHP积分兑换接口实例
2015/02/09 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
2017/05/08 PHP
PHP使用ActiveMQ实例
2018/02/05 PHP
php接口隔离原则实例分析
2019/11/11 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
JavaScipt基本教程之前言
2008/01/16 Javascript
js 页面输出值
2008/11/30 Javascript
js日期联动示例
2014/05/02 Javascript
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串)
2014/10/17 Javascript
javascript实现复选框超过限制即弹出警告框的方法
2015/02/25 Javascript
javascript算法题:求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2015/04/01 Javascript
js简单实现Select互换数据的方法
2015/08/17 Javascript
基于javascript实现浏览器滚动条快到底部时自动加载数据
2015/11/30 Javascript
jQuery+JSON实现AJAX二级联动实例分析
2015/12/18 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
js获取元素下的第一级子元素的方法(推荐)
2017/03/05 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
2018/07/23 Javascript
vue组件从开发到发布的实现步骤
2018/11/11 Javascript
javascript异步编程的六种方式总结
2019/05/17 Javascript
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
jQuery实现动态操作table行
2020/11/23 jQuery
Python中基本的日期时间处理的学习教程
2015/10/16 Python
Python黑魔法Descriptor描述符的实例解析
2016/06/02 Python
python实现用户管理系统
2018/01/10 Python
python实现二维数组的对角线遍历
2019/03/02 Python
Python学习笔记之Django创建第一个数据库模型的方法
2019/08/07 Python
django序列化serializers过程解析
2019/12/14 Python
python 命名规范知识点汇总
2020/02/14 Python
银行优秀员工事迹
2014/02/06 职场文书
2014年班主任德育工作总结
2014/12/05 职场文书
工作保证书
2015/01/17 职场文书
2016年幼儿园教师师德承诺书
2016/03/25 职场文书