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 定时器调用传递参数的方法
Nov 12 Javascript
JQery 渐变图片导航效果代码 漂亮
Jan 01 Javascript
jquery.validate使用攻略 第一部
Jul 01 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
Nov 17 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
Mar 11 Javascript
AngularJS实现根据变量改变动态加载模板的方法
Nov 04 Javascript
bootstrap vue.js实现tab效果
Feb 07 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
Jul 23 Javascript
简单实现js拖拽效果
Jul 25 Javascript
AngularJS实现页面跳转后自动弹出对话框实例代码
Aug 02 Javascript
JavaScript常见事件对象与操作实例总结
Jan 05 Javascript
纯javascript实现选择框的全选与反选功能
Apr 08 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
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
实用函数8
2007/11/08 PHP
PHP 分页类(模仿google)-面试题目解答
2009/09/13 PHP
php数组索引的Key加引号和不加引号的区别
2014/08/19 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
php-fpm中max_children的配置
2019/03/15 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
JavaScript 语言的递归编程
2010/05/18 Javascript
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
vue项目首屏加载时间优化实战
2019/04/23 Javascript
判断js数据类型的函数实例详解
2019/05/23 Javascript
详解使用JWT实现单点登录(完全跨域方案)
2019/08/02 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
2020/05/12 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
python使用MySQLdb访问mysql数据库的方法
2015/08/03 Python
基于python实现在excel中读取与生成随机数写入excel中
2018/01/04 Python
python实现朴素贝叶斯分类器
2018/03/28 Python
Selenium的使用详解
2018/10/19 Python
Python中使用双下划线防止类属性被覆盖问题
2019/06/27 Python
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
求职简历推荐信范文
2013/12/02 职场文书
协议书样本
2014/04/23 职场文书
升旗仪式演讲稿
2014/05/08 职场文书
农村环境卫生倡议书
2015/04/29 职场文书
独生子女证明范本
2015/06/19 职场文书
校园歌手大赛主持词
2015/07/03 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书
SpringAop日志找不到方法的处理
2021/06/21 Java/Android
win10更新失败无限重启解决方法
2022/04/19 数码科技
python数字图像处理之图像自动阈值分割示例
2022/06/28 Python