如何移除JSON的键值对?Spring Framework与AngularJS环境下的技术问题
解决移除返回JSON键值对的问题
嘿,我看你遇到的问题是想移除AJAX返回JSON里的部分键值对,但当前的代码处理方式有点问题,咱们来快速搞定它!
问题根源
你现在在success回调里把returnJSON.items直接转成了字符串result,但字符串是没办法直接操作键值对的——你得先操作原生JavaScript对象,之后再根据需求转成字符串。
修改后的代码示例
假设你想移除items对象里的某个键(比如unwantedKey),可以这么改:
$.ajax({ type: 'POST', dataType: 'JSON', data: JSON.stringify(search), contentType:"application/json; charset=UTF-8", url: '/yboard/select', error: function() { alert("Loading failed!"); }, success: function(returnJSON) { if (returnJSON.success) { // 直接拿到items对象,先不转字符串 var items = returnJSON.items; // 移除不需要的键值对,键名要注意大小写哦 delete items.unwantedKey; // 如果要移除多个,就多写几行delete,比如:delete items.anotherKey; // 如果你之后需要字符串形式,再转成JSON字符串 var result = JSON.stringify(items); console.log("no : " + result); } else { alert("it's f..."); } } });
特殊情况:如果items是数组
如果returnJSON.items是一个对象数组(比如多条数据),那你需要遍历数组,对每个对象执行删除操作:
success: function(returnJSON) { if (returnJSON.success) { // 遍历数组里的每个对象 returnJSON.items.forEach(function(item) { delete item.unwantedKey; delete item.anotherUnwantedKey; }); // 转成字符串(如果需要的话) var result = JSON.stringify(returnJSON.items); console.log("no : " + result); } else { alert("it's f..."); } }
额外提示
- 确保你要删除的键名完全匹配,JavaScript是大小写敏感的,别写错了;
- 如果不需要把结果转成字符串,直接操作
items对象就可以,不用调用JSON.stringify。
内容的提问来源于stack exchange,提问作者user2458645
相关产品推荐
相关产品推荐

