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


Posted in Javascript onJanuary 05, 2019

对于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;
  }

需要的就试试吧。

总结

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

Javascript 相关文章推荐
你必须知道的Javascript知识点之&quot;深入理解作用域链&quot;的介绍
Apr 23 Javascript
JS window对象的top、parent、opener含义介绍
Dec 03 Javascript
jQuery的ready方法详解
Nov 27 Javascript
Bootstrap3制作自己的导航栏
May 12 Javascript
jQuery+Ajax实现用户名重名实时检测
Jun 01 jQuery
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
Jul 30 Javascript
js实现简单模态框实例
Nov 16 Javascript
原生JavaScript写出Tabs标签页的实例代码
Jul 20 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
Aug 11 Javascript
JS绘图Flot应用图形绘制异常解决方案
Oct 16 Javascript
JS实现购物车基本功能
Nov 08 Javascript
原生js实现滑块区间组件
Jan 20 Javascript
JavaScript常见事件对象与操作实例总结
Jan 05 #Javascript
JavaScript常见事件处理程序实例总结
Jan 05 #Javascript
JavaScript代码调试方法实例小结
Jan 05 #Javascript
JavaScript实现连连看连线算法
Jan 05 #Javascript
JavaScript错误处理操作实例详解
Jan 04 #Javascript
JSON基本语法及与JavaScript的异同实例分析
Jan 04 #Javascript
JavaScript解析及序列化JSON的方法实例分析
Jan 04 #Javascript
You might like
php中引用符号(&amp;)的使用详解
2013/11/13 PHP
ThinkPHP中的关联模型注意点
2014/06/16 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
php监测数据是否成功插入到Mysql数据库的方法
2016/11/25 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
2019/02/28 PHP
jQuery ready函数滥用分析
2011/02/16 Javascript
JavaScript加强之自定义callback示例
2013/09/21 Javascript
jQuery实现tag便签去重效果的方法
2015/01/20 Javascript
JS作为值的函数用法示例
2016/06/20 Javascript
AngularJS 工作原理详解
2016/08/18 Javascript
微信小程序 开发之全局配置
2017/05/05 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
2018/09/25 Javascript
Vue中的$set的使用实例代码
2018/10/08 Javascript
layui弹出框Tab选项卡的示例代码
2019/09/04 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
Javascript Symbol原理及使用方法解析
2020/10/22 Javascript
vue video和vue-video-player实现视频铺满教程
2020/10/30 Javascript
一些Python中的二维数组的操作方法
2015/05/02 Python
星球大战与Python之间的那些事
2016/01/07 Python
Python学习小技巧之列表项的拼接
2017/05/20 Python
python2.7 mayavi 安装图文教程(推荐)
2017/06/22 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
Python用sndhdr模块识别音频格式详解
2018/01/11 Python
Django自定义用户认证示例详解
2018/03/14 Python
Python多线程同步---文件读写控制方法
2019/02/12 Python
pytorch:实现简单的GAN示例(MNIST数据集)
2020/01/10 Python
Django-imagekit的使用详解
2020/07/06 Python
详解Python爬虫爬取博客园问题列表所有的问题
2021/01/18 Python
字中字效果的实现【html5实例】
2016/05/03 HTML / CSS
Linux上比较文件的命令都有哪些
2012/02/24 面试题
银行财务部实习生的自我鉴定
2013/11/27 职场文书
大学生社会实践活动总结
2014/07/03 职场文书
车辆安全隐患排查制度
2015/08/05 职场文书
Python requests用法和django后台处理详解
2022/03/19 Python
Golang bufio详细讲解
2022/04/21 Golang
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS