在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 相关文章推荐
漂亮的提示信息(带箭头)
Mar 21 Javascript
jquery select选中的一个小问题
Oct 11 Javascript
JSON 编辑器实现代码
Dec 06 Javascript
Javascript 多物体运动的实现
Dec 24 Javascript
window.location.reload 刷新使用分析(去对话框)
Nov 11 Javascript
javascript数组常用方法汇总
Sep 10 Javascript
微信小程序 删除项目工程实现步骤
Nov 10 Javascript
jsTree使用记录实例
Dec 01 Javascript
p5.js入门教程之图片加载
Mar 20 Javascript
Node 升级到最新稳定版的方法分享
May 17 Javascript
JavaScript 严格模式(use strict)用法实例分析
Mar 04 Javascript
如何在JS文件中获取Vue组件
Sep 16 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二维数组的去重问题解析
2011/07/17 PHP
php数组去重实例及分析
2013/11/26 PHP
PHP页面实现定时跳转的方法
2014/10/31 PHP
php生成固定长度纯数字编码的方法
2015/07/09 PHP
Yii框架用户登录session丢失问题解决方法
2017/01/07 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
jquery 单击li防止重复加载的实现代码
2010/12/24 Javascript
Javascript base64编码实现代码
2011/12/02 Javascript
js中各种类型的变量在if条件中是true还是false
2014/07/16 Javascript
JS判断变量是否为空判断是否null
2014/07/25 Javascript
JavaScript实现的石头剪刀布游戏源码分享
2014/08/22 Javascript
javascript实现验证身份证号的有效性并提示
2015/04/30 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
详解Angular 4.x Injector
2017/05/04 Javascript
微信小程序movable view移动图片和双指缩放实例代码
2017/08/08 Javascript
vue 组件 全局注册和局部注册的实现
2018/02/28 Javascript
Promise.all中对于reject的处理方法
2018/08/01 Javascript
Javascript实现时间倒计时功能
2018/11/17 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
python实现文件分组复制到不同目录的例子
2014/06/04 Python
在Python程序和Flask框架中使用SQLAlchemy的教程
2016/06/06 Python
python文件特定行插入和替换实例详解
2017/07/12 Python
举例讲解Python常用模块
2019/03/08 Python
利用Python查看微信共同好友功能的实现代码
2019/04/24 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
Tensorflow设置显存自适应,显存比例的操作
2020/02/03 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
Python实现异步IO的示例
2020/11/05 Python
python如何利用paramiko执行服务器命令
2020/11/07 Python
Python调用飞书发送消息的示例
2020/11/10 Python
宝宝周岁宴答谢词
2014/01/26 职场文书
租房安全协议书
2014/08/20 职场文书
计算机科学与技术专业求职信
2014/09/03 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
Sql-Server数据库单表查询 4.3实验课
2021/04/05 SQL Server