在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 相关文章推荐
ajax 文件上传应用简单实现
Mar 03 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
Jan 05 Javascript
JS匿名函数类生成方式实例分析
Nov 26 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
Jan 03 Javascript
在Vue组件上动态添加和删除属性方法
Feb 23 Javascript
详解vue组件开发脚手架
Jun 15 Javascript
JS实现获取自定义属性data值的方法示例
Dec 19 Javascript
详解关于微信setData回调函数中的坑
Feb 18 Javascript
微信小程序图片左右摆动效果详解
Jul 13 Javascript
微信小程序实现页面分享onShareAppMessage
Aug 12 Javascript
解决vue项目F5刷新mounted里的函数不执行问题
Nov 05 Javascript
vue动态设置页面title的方法实例
Aug 23 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 array_search() 函数使用
2010/04/13 PHP
使用swoole扩展php websocket示例
2014/02/13 PHP
PHP设计模式之装饰者模式代码实例
2015/05/11 PHP
PHP类型约束用法示例
2016/09/28 PHP
js下获取div中的数据的原理分析
2010/04/07 Javascript
浅析js封装和作用域
2013/07/09 Javascript
JS图像无缝滚动脚本非常好用
2014/02/10 Javascript
JS自调用匿名函数具体实现
2014/02/11 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
PageSwitch插件实现100种不同图片切换效果
2015/07/28 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
详解Javascript数据类型的转换规则
2016/12/12 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
2017/07/11 Javascript
Node.js学习之查询字符串解析querystring详解
2017/09/28 Javascript
vue+iview 实现可编辑表格的示例代码
2018/10/31 Javascript
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
2020/11/06 Javascript
[01:07:53]RNG vs VG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python去除空格和换行符的实现方法(推荐)
2017/01/04 Python
Python随机生成手机号、数字的方法详解
2017/07/21 Python
Python中turtle作图示例
2017/11/15 Python
python使用代理ip访问网站的实例
2018/05/07 Python
python 在屏幕上逐字显示一行字的实例
2018/12/24 Python
python读取目录下最新的文件夹方法
2018/12/24 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
Python 3 实现定义跨模块的全局变量和使用教程
2019/07/07 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
python从PDF中提取数据的示例
2020/10/30 Python
Clarks英国官方网站:全球领军鞋履品牌
2016/11/26 全球购物
The Hut美国/加拿大:英国领先的豪华在线百货商店
2019/03/26 全球购物
北京某科技有限公司C# .net笔试题
2014/09/27 面试题
教师党员思想汇报
2014/01/06 职场文书
MySQL 常见存储引擎的优劣
2021/06/02 MySQL
配置nginx 重定向到系统维护页面
2021/06/08 Servers
mysql 生成连续日期及变量赋值
2022/03/20 MySQL
JS前端宏任务微任务及Event Loop使用详解
2022/07/23 Javascript