在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 相关文章推荐
高亮显示web页表格行的javascript代码
Nov 19 Javascript
利用javascript打开模态对话框(示例代码)
Jan 11 Javascript
Node.js+Express+MySql实现用户登录注册功能
Jul 10 Javascript
JavaScript实现计数器基础方法
Oct 10 Javascript
微信小程序自定义tab实现多层tab嵌套功能
Jun 15 Javascript
原生JS实现$.param() 函数的方法
Aug 10 Javascript
node.js调用C++函数的方法示例
Sep 21 Javascript
如何解决js函数防抖、节流出现的问题
Jun 17 Javascript
js 实现 list转换成tree的方法示例(数组到树)
Aug 18 Javascript
JavaScript隐式类型转换代码实例
May 29 Javascript
javascript实现移动端红包雨页面
Jun 23 Javascript
vue实现在data里引入相对路径
Jun 05 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
人大复印资料处理程序_查询篇
2006/10/09 PHP
php桌面中心(一) 创建数据库
2007/03/11 PHP
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
深入解析PHP中的(伪)多线程与多进程
2013/07/01 PHP
php中OR与|| AND与&amp;&amp;的区别总结
2013/10/26 PHP
PHP中addcslashes与stripcslashes函数用法分析
2016/01/07 PHP
学习PHP session的传递方式
2016/06/15 PHP
一个JQuery写的点击上下滚动的小例子
2011/08/27 Javascript
javascript检测页面是否缩放的小例子
2013/05/16 Javascript
JAVASCRIPT函数作用域和提前声明 分享
2013/08/22 Javascript
jQuery+HTML5美女瀑布流布局实现方法
2015/09/21 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
2017/09/14 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
ESLint 是如何检查 .vue 文件的
2020/11/30 Vue.js
Python实现网络端口转发和重定向的方法
2016/09/19 Python
python3爬取各类天气信息
2018/02/24 Python
Python Json模块中dumps、loads、dump、load函数介绍
2018/05/15 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
Python csv模块使用方法代码实例
2019/08/29 Python
python实现回旋矩阵方式(旋转矩阵)
2019/12/04 Python
python 实现生成均匀分布的点
2019/12/05 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
详解HTML5中的标签
2015/06/19 HTML / CSS
罗德与泰勒百货官网:Lord & Taylor
2016/08/12 全球购物
机械专业应届生求职信
2013/09/21 职场文书
民生工作实施方案
2014/05/31 职场文书
学生党员一帮一活动总结
2014/07/08 职场文书
学校安全工作汇报材料
2014/08/16 职场文书
踏青活动策划方案
2014/08/19 职场文书
民间借贷协议书范本
2014/10/01 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
2015年乡镇环保工作总结
2015/04/22 职场文书
通知函格式范文
2015/04/27 职场文书
团组织关系介绍信
2019/06/24 职场文书
Mysql存储过程、触发器、事件调度器使用入门指南
2022/01/22 MySQL