在jQuery中 关于json空对象筛选替换
在jQuery中 关于json空对象筛选替换
发布时间:2016-12-30 来源:查字典编辑
摘要:Requirement:一个jsonobject,并且可能包含一些空值或者空字符串,在页面显示的时候希望遇到空值显示“N/A”,但是有一部分...

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空对象筛选替换1

Method 2 结果

在jQuery中 关于json空对象筛选替换2

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类