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 相关文章推荐
JQUERY dialog的用法详细解析
Dec 19 Javascript
JavaScript中使用concat()方法拼接字符串的教程
Jun 06 Javascript
jQuery插件实现适用于移动端的地址选择器
Feb 18 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
Sep 18 Javascript
浅谈JavaScript的自动垃圾收集机制
Dec 15 Javascript
JS实现访问DOM对象指定节点的方法示例
Apr 04 Javascript
JS中移除非数字最多保留一位小数
May 09 Javascript
vue input实现点击按钮文字增删功能示例
Jan 29 Javascript
JavaScript代码异常监控实现过程详解
Feb 17 Javascript
JavaScript中window和document用法详解
Jul 28 Javascript
手把手教你实现 Promise的使用方法
Sep 02 Javascript
JavaScript中EventBus实现对象之间通信
Oct 18 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创建多级目录代码
2008/06/05 PHP
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
php实现将数组转换为XML的方法
2015/03/09 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
2016/03/05 PHP
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
jQuery学习笔记 获取jQuery对象
2012/09/19 Javascript
file控件选择上传文件确定后触发的js事件是哪个
2014/03/17 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
jQuery中:image选择器用法实例
2015/01/03 Javascript
javascript实现的简单计时器
2015/07/19 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
Bootstrap表单布局样式源代码
2016/07/04 Javascript
ES6 javascript的异步操作实例详解
2017/10/30 Javascript
微信小程序实现跳转的几种方式总结(推荐)
2019/04/24 Javascript
Javascript实现html转pdf高清版(提高分辨率)
2020/02/19 Javascript
vue props 一次传多个值实例
2020/07/22 Javascript
ant design vue中表格指定格式渲染方式
2020/10/28 Javascript
vue使用echarts画组织结构图
2021/02/06 Vue.js
python使用socket远程连接错误处理方法
2015/04/29 Python
使用Python压缩和解压缩zip文件的教程
2015/05/06 Python
Python实现比较两个列表(list)范围
2015/06/12 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
2017/06/14 Python
Zookeeper接口kazoo实例解析
2018/01/22 Python
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
如何定义TensorFlow输入节点
2020/01/23 Python
python numpy库np.percentile用法说明
2020/06/08 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
详解python内置模块urllib
2020/09/09 Python
皇家道尔顿官网:Royal Doulton
2017/12/06 全球购物
生产车间实习自我鉴定
2013/09/23 职场文书
运动会100米解说词
2014/01/23 职场文书
高中历史教学反思
2014/02/08 职场文书
模具专业求职信
2014/06/26 职场文书
党员个人公开承诺书
2014/08/29 职场文书
2015年餐厅服务员工作总结
2015/04/23 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书