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:void(0)的真正含义实例分析
Aug 20 Javascript
基于jquery的页面划词搜索JS
Sep 14 Javascript
javascript对select标签的控制(option选项/select)
Jan 31 Javascript
javascript自定义右键弹出菜单实现方法
May 25 Javascript
jQuery中 delegate使用的问题
Jul 03 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
May 28 Javascript
JS如何设置iOS中微信浏览器的title
Nov 22 Javascript
vue2.0开发实践总结之入门篇
Dec 06 Javascript
canvas绘制万花筒效果(代码分享)
Jan 20 Javascript
js中apply与call简单用法详解
Nov 06 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
Aug 13 Javascript
JS sort排序详细使用方法示例解析
Sep 27 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 pcntl_fork和pcntl_fork 的用法
2009/04/13 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
2014/01/22 PHP
分享一个php 的异常处理程序
2014/06/22 PHP
php获取远程图片并下载保存到本地的方法分析
2016/10/08 PHP
php高清晰度无损图片压缩功能的实现代码
2018/12/09 PHP
javascript for循环设法提高性能
2010/02/24 Javascript
JavaScript获取多个数组的交集简单实例
2013/11/11 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
jquery动态分页效果堪比时光网
2014/09/25 Javascript
jQuery实现跨域
2015/02/03 Javascript
Angularjs注入拦截器实现Loading效果
2015/12/28 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
JS小数转换为整数的方法分析
2017/01/07 Javascript
jQuery实现web页面樱花坠落的特效
2017/06/01 jQuery
ZeroClipboard.js使用一个flash复制多个文本框
2017/06/19 Javascript
Vue组件实例间的直接访问实现代码
2017/08/20 Javascript
vue路由组件按需加载的几种方法小结
2018/07/12 Javascript
vue-lazyload使用总结(推荐)
2018/11/01 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
关于引入vue.js 文件的知识点总结
2020/01/28 Javascript
Windows环境下python环境安装使用图文教程
2018/03/13 Python
浅谈Pytorch torch.optim优化器个性化的使用
2020/02/20 Python
Python异常处理机制结构实例解析
2020/07/23 Python
Staples加拿大官方网站:办公用品一站式采购
2016/09/25 全球购物
eBay澳大利亚站:eBay.com.au
2018/02/02 全球购物
美国马匹用品和马钉购物网站:State Line Tack
2018/08/05 全球购物
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
挂职自我鉴定
2014/02/26 职场文书
2015年社区工作总结
2015/04/08 职场文书
学校艾滋病宣传活动总结
2015/05/09 职场文书
公司董事任命书
2015/09/21 职场文书
适合毕业生创业的项目怎么找?
2019/08/08 职场文书
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang
Windows 64位 安装 mysql 8.0.28 图文教程
2022/04/19 MySQL
python 单机五子棋对战游戏
2022/04/28 Python