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 相关文章推荐
学习YUI.Ext第五日--做拖放Darg&amp;Drop
Mar 10 Javascript
Javascript typeof 用法
Dec 28 Javascript
jquery $.ajax各个事件执行顺序
Oct 15 Javascript
jQuery网页选项卡插件rTabs用法实例分析
Aug 26 Javascript
jQuery实现简单滚动动画效果
Apr 07 Javascript
利用AngularJs实现京东首页轮播图效果
Sep 08 Javascript
js 点击a标签 获取a的自定义属性方法
Nov 21 Javascript
JS中Safari浏览器中的Date
Jul 17 Javascript
JavaScript模块模式实例详解
Oct 25 Javascript
Vue.js自定义事件的表单输入组件方法
Mar 08 Javascript
基于jQuery ztree实现表格风格的树状结构
Aug 31 jQuery
详解React中传入组件的props改变时更新组件的几种实现方法
Sep 13 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
兼容firefox,chrome的网页灰度效果
2011/08/08 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
关于JavaScript中name的意义冲突示例介绍
2014/05/29 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
2014/06/16 Javascript
浅谈javascript中createElement事件
2014/12/05 Javascript
jquery自定义表单验证插件
2016/10/12 Javascript
详解nodejs微信公众号开发——5.素材管理接口
2017/04/11 NodeJs
关于前后端json数据的发送与接收详解
2017/07/30 Javascript
node前端开发模板引擎Jade的入门
2018/05/11 Javascript
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
[02:47]3.19DOTA2发布会 国服成长历程回顾
2014/03/25 DOTA
[01:07:41]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[00:23]魔方之谜解锁款式
2018/12/20 DOTA
使用Python操作Elasticsearch数据索引的教程
2015/04/08 Python
python简单猜数游戏实例
2015/07/09 Python
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
2016/03/30 Python
selenium+python自动化测试之页面元素定位
2019/01/23 Python
python读写csv文件实例代码
2019/07/05 Python
详细介绍pandas的DataFrame的append方法使用
2019/07/31 Python
利用pyecharts实现地图可视化的例子
2019/08/12 Python
python模拟实现斗地主发牌
2020/01/07 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
金融专业大学生职业生涯规划范文
2014/01/16 职场文书
学生打架检讨书1000字
2014/01/16 职场文书
大学生职业生涯规划范文
2014/01/22 职场文书
巾帼文明岗申报材料
2014/05/01 职场文书
奉献演讲稿范文
2014/05/21 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
党员教师自我剖析材料
2014/09/29 职场文书
2015最新民情日记范文
2015/06/26 职场文书
汽车销售合同文本
2019/08/08 职场文书
Python中使用subprocess库创建附加进程
2021/05/11 Python