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 prototype 原型链
Mar 12 Javascript
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
May 24 Javascript
js截取小数点后几位的写法
Nov 14 Javascript
浅析jquery的js图表组件highcharts
Mar 06 Javascript
jQuery判断复选框是否勾选的原理及示例
May 21 Javascript
JQuery实现动态适时改变字体颜色的方法
Mar 10 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
Mar 25 Javascript
jquery带翻页动画的电子杂志代码分享
Aug 21 Javascript
解决给dom元素绑定click等事件无效问题的方法
Feb 17 Javascript
JavaScript中this用法学习笔记
Mar 17 Javascript
JS实现音乐钢琴特效
Jan 06 Javascript
vuex实现购物车的增加减少移除
Jun 28 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 水平的题目
2007/05/30 PHP
PHP中new static()与new self()的区别异同分析
2014/08/22 PHP
php获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
从新浪弄下来的全屏广告代码 与使用说明
2007/03/15 Javascript
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
2009/05/21 Javascript
Js操作树节点自动折叠展开的几种方法
2014/05/05 Javascript
jQuery分别获取选中的复选框值的示例
2014/06/17 Javascript
jQuery使用post方法提交数据实例
2015/03/25 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
2015/12/12 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
bootstrap模态框垂直居中效果
2016/12/03 Javascript
socket.io学习教程之深入学习篇(三)
2017/04/29 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
2017/09/11 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
2018/01/05 Javascript
jQuery时间戳和日期相互转换操作示例
2018/12/07 jQuery
[13:55]Newbee vs Team Spirit
2018/06/07 DOTA
简介Python中用于处理字符串的center()方法
2015/05/18 Python
python利用pandas将excel文件转换为txt文件的方法
2018/10/23 Python
对python多线程中Lock()与RLock()锁详解
2019/01/11 Python
python实现AES加密解密
2019/03/28 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
2019/06/19 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
python实现登录密码重置简易操作代码
2019/08/14 Python
Python 自动登录淘宝并保存登录信息的方法
2019/09/04 Python
Python 使用office365邮箱的示例
2020/10/29 Python
python中@contextmanager实例用法
2021/02/07 Python
深入解析HTML5 Canvas控制图形矩阵变换的方法
2016/03/24 HTML / CSS
会计专业应届生求职信
2013/11/24 职场文书
广告学专业求职信
2014/06/19 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
八年级历史教学反思
2016/02/19 职场文书
《绝招》教学反思
2016/02/20 职场文书
2016年庆祝六一儿童节活动总结
2016/04/06 职场文书
笔记本自带的win11如何跳过联网激活?
2022/04/20 数码科技