JavaScript 操作JSON对象查找、删除、修改
来源:互联网 发布:mac 安装virtualbox 编辑:程序博客网 时间:2024/06/06 18:32
近日根据公司需求用js对json的各种处理,完成后整理如下(全递归处理方法,如有更好的见解希望告知):
- 对JSON的查找
/** * * 获取JSON对应叶子节点的数据 */ function getJSONData(keys, data ){ let [key, ...child] = keys if (keys.length == 1) { // delete datas[key] 只能删除对象,删除数组时不能修改数组的长度 return datas[key] } else { let { [key]: data } = datas delJSONData(child, data) } }
2、删除JSON对象中的某个数据
/** * datas 为json对象,keys为json删除的key的数组 */ function delJSONData(keys,type, datas) { let [key, ...child] = keys if (keys.length == 1) { if(type=='array'){ datas.splice(key, 1) // 若删除数组元素用,删除对象用delete }else{ delete datas[key] // 只能删除对象,删除数组时不能修改数组的长度 } } else { let { [key]: data } = datas delJSONData(child,type, data) } }
3、增加和修改JSON对象中的某个数据节点
/** * 修改JSON对象中的某个数据 */ function setJSONData(keys, value, datas) { let [key, ...child] = keys if (keys.length == 1) { datas[key] = value } else { let { [key]: data } = datas setJSONData(child, value, data) } }
例子
let json ={ "teacher": [ { "name": "jordan", "sex": "m", "age": "40" }, { "name": "bryant", "sex": "m", "age": "28" }, { "name": "McGrady", "sex": "m", "age": "27" } ] } let pareType = 'array' let keystr = 'teacher.0.name' //teacher为第一个key,0为teacher数组的第一个选项,name为想要删除的对象名 //获取 name = jordan let name = getJSONData(keystr.split('.'),json) console.log(name) //删除 name = jordan对象 delJSONData(keystr.split('.'),pareType,json) console.log(json) let name = "123" setJSONData(keystr.split('.'),name,json) //修改成功 console.log(json)
阅读全文
0 0
- JavaScript 操作JSON对象查找、删除、修改
- 在Javascript操作JSON对象,增加 删除 修改
- javascript json 添加 修改 删除 的操作
- javascript里面的数组,json对象,动态添加,修改,删除示例
- javascript里面的数组,json对象,动态添加,修改,删除示例
- JavaScript操作json对象,json字符串
- hibernate增加,删除,修改,查找操作
- AS3 操作XML,增加、删除、修改、查找
- json对象,动态添加,修改,删除示例
- javascript、JQuery操作数组、Json对象、缓存
- Javascript数组、json对象基本操作
- javascript、JQuery操作数组、Json对象、缓存
- 关于给javascript对象添加、删除、修改对象的属性
- Dom4j 操作, 节点查找 添加 删除 修改 。。。xPath
- c#环境XML文件创建、修改、删除、查找相关操作
- 增加删除修改查找
- json添加修改删除
- javascript json对象javascript
- 华为研发工程师编程题1汽水瓶
- win10下右键菜单添加“打开cmd”
- 新规后最新长沙县公专星沙考场科目三线路图
- java用post方法获取json数据,与服务器进行交互
- 算法提高 学霸的迷宫
- JavaScript 操作JSON对象查找、删除、修改
- 面试算法题
- HIVE External&TBLPROPERTIES(二)
- one hot 编码及数据归一化
- 实验3.3 设计算法并写出代码,实现一个十将二进制转换成2进制数。
- react-router 4.0版本使用笔记
- 图论之prim 超级牛游戏
- leetcode 506. Relative Ranks
- flash和内存的区别