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 相关文章推荐
jquery 简短右键菜单 多浏览器兼容
Jan 01 Javascript
Jquery练习之表单验证实现代码
Dec 14 Javascript
JQuery中关于jquery.js与jquery.min.js的比较探讨
May 15 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
Mar 05 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
Mar 23 Javascript
jQuery.each使用详解
Jul 07 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
Dec 02 Javascript
VC调用javascript的几种方法(推荐)
Aug 09 Javascript
javaScript生成支持中文带logo的二维码(jquery.qrcode.js)
Jan 03 Javascript
基于vue的短信验证码倒计时demo
Sep 13 Javascript
微信小程序picker组件下拉框选择input输入框的实例
Sep 20 Javascript
浅谈Vue static 静态资源路径 和 style问题
Nov 07 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
yii的CURD操作实例详解
2014/12/04 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
2017/11/21 PHP
Laravel源码解析之路由的使用和示例详解
2018/09/27 PHP
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
js function使用心得
2010/05/10 Javascript
JQuery live函数
2010/12/24 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
选择复选框按钮置灰否则按钮可用
2014/05/22 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
javascript性能优化之DOM交互操作实例分析
2015/12/12 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
深入浅析Bootstrap列表组组件
2016/05/03 Javascript
微信小程序 教程之wxapp视图容器 swiper
2016/10/19 Javascript
js使用Replace结合正则替换重复出现的字符串功能示例
2016/12/27 Javascript
js实现随机抽选效果、随机抽选红色球效果
2017/01/13 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
Vue自定义toast组件的实例代码
2018/08/15 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
webpack4 SplitChunks实现代码分隔详解
2019/05/23 Javascript
ES6中异步对象Promise用法详解
2019/07/31 Javascript
vue中beforeRouteLeave实现页面回退不刷新的示例代码
2019/11/01 Javascript
python使用装饰器和线程限制函数执行时间的方法
2015/04/18 Python
详解Python中列表和元祖的使用方法
2015/04/25 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
python音频处理的示例详解
2020/12/23 Python
Android面试题附答案
2014/12/08 面试题
心理健康心得体会
2014/01/02 职场文书
优秀教师感人事迹材料
2014/05/04 职场文书
银行奉献演讲稿
2014/09/16 职场文书
商场营业员岗位职责
2015/04/14 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
安全守法证明
2015/06/23 职场文书
nginx作grpc的反向代理踩坑总结
2021/07/07 Servers
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS