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 string字符串优化问题
Jul 31 Javascript
jQuery页面图片伴随滚动条逐渐显示的小例子
Mar 21 Javascript
js获取URL的参数的方法(getQueryString)示例
Sep 29 Javascript
JavaScript字符串常用的方法
Mar 10 Javascript
JavaScript的事件机制详解
Jan 17 Javascript
angular+webpack2实战例子
May 23 Javascript
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
Mar 09 Javascript
关于Google发布的JavaScript代码规范你要知道哪些
Apr 04 Javascript
vue实现图片预览组件封装与使用
Jul 13 Javascript
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
Aug 17 Javascript
layui-table对返回的数据进行转变显示的实例
Sep 04 Javascript
微信小程序反编译的实现
Dec 10 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多层数组与对象的转换实例代码
2013/08/05 PHP
php简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
2015/11/16 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
nodejs win7下安装方法
2012/05/24 NodeJs
javascript 日期时间 转换的方法
2013/02/21 Javascript
JavaScript在IE和FF下的兼容性问题
2014/05/19 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
第六篇Bootstrap表格样式介绍
2016/06/21 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
BootStrap学习系列之布局组件(下拉,按钮组[toolbar],上拉)
2017/01/03 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
Vue 组件(component)教程之实现精美的日历方法示例
2018/01/08 Javascript
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
微信小程序实现批量倒计时功能
2020/11/01 Javascript
JavaScript实现背景自动切换小案例
2019/09/27 Javascript
[01:34]完美“圣”典宣传片震撼发布,12.17与你不见不散
2016/12/16 DOTA
[01:07:46]完美世界DOTA2联赛循环赛 Magma vs IO BO2第二场 11.01
2020/11/02 DOTA
python调用shell的方法
2013/11/20 Python
Python中random模块生成随机数详解
2016/03/10 Python
对Python中range()函数和list的比较
2018/04/19 Python
Python中Numpy mat的使用详解
2019/05/24 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
python Manager 之dict KeyError问题的解决
2019/12/21 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
2020/05/10 Python
利用 CSS3 实现的无缝轮播功能代码
2017/09/25 HTML / CSS
大学新生军训个人的自我评价
2013/10/03 职场文书
绿色学校实施方案
2014/03/31 职场文书
2014年依法行政工作总结
2014/11/19 职场文书
简历自我评价模板
2015/03/11 职场文书
社会心理学学习心得体会
2016/01/22 职场文书
2016年艾滋病宣传活动总结
2016/04/01 职场文书
读《工匠精神》有感:热爱工作,精益求精
2019/12/28 职场文书
java设计模式--三种工厂模式详解
2021/07/21 Java/Android