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实例教程(19) 使用HoTMetal(2)
Dec 23 Javascript
火狐浏览器(firefox)下获得Event对象以及keyCode
Nov 13 Javascript
读jQuery之八 包装事件对象
Jun 21 Javascript
鼠标放在图片上显示大图的JS代码
Mar 26 Javascript
js数组去重的常用方法总结
Jan 24 Javascript
JavaScript——DOM操作——Window.document对象详解
Jul 14 Javascript
AngularJS中的Promise详细介绍及实例代码
Dec 13 Javascript
脚手架vue-cli工程webpack的作用和特点
Sep 29 Javascript
Vue多环境代理配置方法思路详解
Jun 21 Javascript
layui表格内放置图片,并点击放大的实例
Sep 10 Javascript
解决vue 给window添加和移除resize事件遇到的坑
Jul 21 Javascript
基于postman获取动态数据过程详解
Sep 08 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
便携利器 — TECSUN PL-365简评
2021/03/02 无线电
自动跳转中英文页面
2006/10/09 PHP
php面向对象全攻略 (七) 继承性
2009/09/30 PHP
PHP 图片文件上传实现代码
2010/12/29 PHP
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
2011/12/05 PHP
详解PHP归并排序的实现
2016/10/18 PHP
PHP回调函数概念与用法实例分析
2017/11/03 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
jquery动态遍历Json对象的属性和值的方法
2016/07/27 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
jQuery简单实现向列表动态添加新元素的方法示例
2017/12/25 jQuery
React中使用UEditor百度富文本的方法
2018/08/22 Javascript
vue中el-upload上传图片到七牛的示例代码
2018/10/19 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
解决Element中el-date-picker组件不回填的情况
2020/11/07 Javascript
微信小程序实现锚点跳转
2020/11/23 Javascript
Python中的sort()方法使用基础教程
2017/01/08 Python
django富文本编辑器的实现示例
2019/04/10 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
2019/05/27 Python
python爬虫 urllib模块url编码处理详解
2019/08/20 Python
使用IDLE的Python shell窗口实例详解
2019/11/19 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
解决keras模型保存h5文件提示无此目录问题
2020/07/01 Python
Python使用tkinter实现小时钟效果
2021/02/22 Python
医院节能减排方案
2014/06/13 职场文书
培训科主任岗位职责
2014/08/08 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
2014年培训工作总结范文
2014/11/27 职场文书
关于召开会议的通知
2015/04/15 职场文书
2015年普法依法治理工作总结
2015/05/26 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers
如何用PHP实现多线程编程
2021/05/26 PHP
36个正则表达式(开发效率提高80%)
2021/11/17 Javascript