JSON字符串操作移除空串更改key/value的介绍

 更新时间:2019年01月05日 10:30:31   作者:丶Melody  
今天小编就为大家分享一篇关于JSON字符串操作移除空串更改key/value的介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

对于JSON字符串的操作。移除键值、添加属性。

//删除JSON对象value值
var json=[.....];
delete(json['key']);
或者
delete(json.key);
//添加对象object
json.object=value;
或者
json['object']=value;

如果数据是查询数据库得到的,那么可能会存在空值,for循环JSON数据挨个移除空值或者操作数据比较繁琐。

这时候可以使用for…in来循环属性 去除空值或者操作数据。

 function removeEmptyObject(object){
   for (var i in object) {
  var value = object[i];
  if (typeof value === 'object') {
   if (Array.isArray(value)) {
    if (value.length == 0) {
     delete object[i];
     continue;
    }
   }
   removeEmptyObject(value);
   //按需添加
   if (isEmpty(value)) {
    delete object[i];
   }
  } else {
   if (value === '' || value === null || value === undefined) {
    delete object[i];
   } else {
   }
  }
 }
 return object;
}
//是否为空
function isEmpty(object) {
 for (var name in object) {
  return false;
 }
 return true;
}

操作组织架构JSON数据,移除空键值,子集内容合并到新键children下。

 function removeEmptyObject(object){
   for (var i in object) {
    var value = object[i];
    if (typeof value === 'object') {
     if (Array.isArray(value)) {
      if (value.length == 0) {
        //alert(object[i]);
       delete object[i];
       continue;
      }else{ 
        var a=[];
        if(i=='jobChildren'){
          for (var j = 0; j < object[i].length; j++) {
            a.push(object[i][j]);
          }
          delete object[i];
        }else if(i=='userChildren'){
          for (var j = 0; j < object[i].length; j++) {
            a.push(object[i][j]);
          }
          delete object[i]; 
        }else if(i=='deptChildren'){
          for (var j = 0; j < object[i].length; j++) {
            a.push(object[i][j]);
          }
          delete object[i]; 
        }else if(i=='companyChildren'){
          for (var j = 0; j < object[i].length; j++) {
            a.push(object[i][j]);
          }
          delete object[i]; 
        }else if(i=='jobDeptChildren'){
          for (var j = 0; j < object[i].length; j++) {
            a.push(object[i][j]);
          }
          delete object[i];
        }
        if(a.length>0&&object["children"]!=undefined){
          for (var k = 0; k < object["children"].length; k++) {
            a.push(object["children"][k]);
          }
          object["children"]=a;
        }else if(a.length>0 && object["children"]==undefined){
          object["children"]=a;
        } 
      }
     }
     removeEmptyObject(value);
     if (isEmpty(value)) {
      delete object[i];
     }
    } else {
     if (value === '' || value === null || value === undefined) {
      delete object[i];
     } else {
     }
    }
   }
  }
  function isEmpty(object) {
   for (var name in object) {
    return false;
   }
   return true;
  }

需要的就试试吧。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • 原生js仿jq判断当前浏览器是否为ie,精确到ie6~8

    原生js仿jq判断当前浏览器是否为ie,精确到ie6~8

    这篇文章主要介绍了原生js仿jq判断当前浏览器是否为ie,精确到ie6~8,需要的朋友可以参考下
    2014-08-08
  • ie下动态加态js文件的方法

    ie下动态加态js文件的方法

    接触过相关知识的都知道,动态向DOM中添加js的script标签时,在各种浏览器下会有不同的表现。
    2011-09-09
  • 微信小程序如何实现在线客服功能

    微信小程序如何实现在线客服功能

    这篇文章主要介绍了微信小程序如何实现在线客服功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • 剖析CocosCreator新资源管理系统

    剖析CocosCreator新资源管理系统

    这篇文章主要介绍了CocosCreator新资源管理系统,从v2.4开始,Creator使用AssetBundle完全重构了资源底层,提供了更加灵活强大的资源管理方式,也解决了之前版本资源管理的痛点(资源依赖与引用),本文将带你深入了解Creator的新资源底层。
    2021-04-04
  • layer.msg()去掉默认时间,实现手动关闭的方法

    layer.msg()去掉默认时间,实现手动关闭的方法

    今天小编就为大家分享一篇layer.msg()去掉默认时间,实现手动关闭的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • 基于JS实现table导出Excel并保留样式

    基于JS实现table导出Excel并保留样式

    这篇文章主要介绍了基于JS实现table导出Excel并保留样式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • js function定义函数使用心得

    js function定义函数使用心得

    js function定义函数使用心得,了解这个才能更进一步的了解js面向对象方面的知识。
    2010-04-04
  • javascript 获取网页标题代码实例

    javascript 获取网页标题代码实例

    这篇文章主要介绍了javascript 获取网页标题代码实例,有需要的朋友可以参考一下
    2014-01-01
  • 微信小程序网络数据请求的实现详解

    微信小程序网络数据请求的实现详解

    这篇文章主要为大家介绍了微信小程序网络数据请求的实现讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • javascript实用小函数使用介绍

    javascript实用小函数使用介绍

    本文整理了一些实用小函数如阻止输入非数字,backspace除外;限制输入最大字符串长度等,需要的朋友可以了解下
    2013-11-11

最新评论