在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事件串连执行多个处理过程的方法
Mar 09 Javascript
jQuery中的常用事件总结
Dec 27 Javascript
在Node.js中实现文件复制的方法和实例
Jun 05 Javascript
解决jquery版本冲突的有效方法
Sep 02 Javascript
2014年50个程序员最适用的免费JQuery插件
Dec 15 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
Aug 14 Javascript
vue router仿天猫底部导航栏功能
Oct 18 Javascript
除Console.log()外更多的Javascript调试命令
Jan 24 Javascript
使用Vue-cli 3.0搭建Vue项目的方法
Jun 07 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
Jun 15 Javascript
利用js-cookie实现前端设置缓存数据定时失效
Jun 18 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
Mar 17 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
基于Zend的Config机制的应用分析
2013/05/02 PHP
php漏洞之跨网站请求伪造与防止伪造方法
2013/08/15 PHP
PHP生成短网址的3种方法代码实例
2014/07/08 PHP
PHP利用APC模块实现文件上传进度条的方法
2015/01/26 PHP
PHP语法小结之基础和变量
2015/11/22 PHP
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
js获取当前select 元素值的代码
2010/04/19 Javascript
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
javascript显示用户停留时间的简单实例
2013/08/05 Javascript
JS 页面计时器示例代码
2013/10/28 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
2014/06/23 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
2015/04/16 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
jQuery实现图片文字淡入淡出效果
2015/12/21 Javascript
jquery获取input type=text中的值的各种方式(总结)
2016/12/02 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
2017/06/17 Javascript
jquery插件懒加载的示例
2020/10/24 jQuery
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
Django+Ajax+jQuery实现网页动态更新的实例
2018/05/28 Python
Python中作用域的深入讲解
2018/12/10 Python
基于wxPython的GUI实现输入对话框(1)
2019/02/27 Python
django ajax发送post请求的两种方法
2020/01/05 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
浅谈Python xlwings 读取Excel文件的正确姿势
2021/02/26 Python
CSS3实现文字描边的2种方法(小结)
2020/02/14 HTML / CSS
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
2013/07/06 面试题
电信专业毕业生推荐信
2013/11/18 职场文书
采购员岗位职责
2015/02/03 职场文书
社团个人总结范文
2015/03/05 职场文书
求职导师推荐信范文
2015/03/27 职场文书
2015年七一建党节活动方案
2015/05/05 职场文书
2016年党员岗位承诺书
2016/03/24 职场文书
62句有关感恩节文案(推荐收藏)
2019/11/28 职场文书
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python