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 multibox 全选
Mar 22 Javascript
js截取函数(indexOf,join等)
Sep 01 Javascript
Array.prototype.concat不是通用方法反驳[译]
Sep 20 Javascript
Javascript 按位与运算符 (&amp;)使用介绍
Feb 04 Javascript
对table和ul实现js分页示例分享
Feb 24 Javascript
js使用正则实现ReplaceAll全部替换的方法
Aug 22 Javascript
一个不错的js html页面倒计时可精确到秒
Oct 22 Javascript
JavaScript中的this关键字使用详解
Aug 14 Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
Jul 27 Javascript
JS操作xml对象转换为Json对象示例
Mar 25 Javascript
深入浅出了解Node.js Streams
May 27 Javascript
js面试题之异步问题的深入理解
Sep 20 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截取html字符串及自动补全html标签的方法
2015/01/15 PHP
php视频拍照上传头像功能实现代码分享
2015/10/08 PHP
php生成验证码,缩略图及水印图的类分享
2016/04/07 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
一端时间轮换的广告
2006/06/26 Javascript
如何实现动态删除javascript函数
2007/05/27 Javascript
js 浮动层菜单收藏
2009/01/16 Javascript
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
SeaJS入门教程系列之使用SeaJS(二)
2014/03/03 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
简单实现jQuery多选框功能
2017/01/09 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
ES6新特性之解构、参数、模块和记号用法示例
2017/04/01 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
Node.js 使用jade模板引擎的示例
2018/05/11 Javascript
浅谈JS中几种轻松处理'this'指向方式
2019/09/16 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
2020/09/10 Javascript
vue中路由跳转不计入history的操作
2020/09/21 Javascript
利用Python循环(包括while&amp;for)各种打印九九乘法表的实例
2017/11/06 Python
Python实现的银行系统模拟程序完整案例
2019/04/12 Python
python实现批量视频分帧、保存视频帧
2019/05/31 Python
Python ConfigParser模块的使用示例
2020/10/12 Python
HTML5之HTML元素扩展(上)—新增加的元素及使用概述
2013/01/31 HTML / CSS
新闻学专业个人求职信写作
2014/02/04 职场文书
离职保密承诺书
2014/05/28 职场文书
会计专业毕业生求职信
2014/07/04 职场文书
会计专业求职信
2014/08/10 职场文书
医院合作协议书
2014/08/19 职场文书
2015社区个人工作总结范文
2015/05/13 职场文书
小学运动会加油词
2015/07/18 职场文书
详解MySQL 联合查询优化机制
2021/05/10 MySQL
Zabbix对Kafka topic积压数据监控的问题(bug优化)
2022/07/07 Servers