jquery - 从 JQuery/Javascript 中的 JSON 对象中删除带有 NULL 的元素
问题描述
我在 StackOverflow 上看到了一些涵盖该主题的问题,但我无法使其与我找到的任何解决方案一起工作。这似乎是一个常见问题,但我怀疑我可能没有正确构建 JSON 对象。
我从表单中获取一些字段,以从数据库中的查询中获取实时原因。但是如果这些字段是空的,我仍然在 JSON 中将它们作为字段:null。
这是 Jquery 代码:
$(document).ready(function() {
$('select').change(function() {
//var formData = JSON.stringify($("#cstates").serializeArray());
var states = { states : $("#cstates").val(), zips : $("#czips").val()};
//var data = JSON.stringify(states).replaceAll(".*\": null(,)?\\r\\n", "");
//{"states":null,"zips":["91941"]}
//str.replaceAll(".*\": null(,)?\\r\\n", "");
alert(JSON.stringify(states));
$.ajax({
type: "POST",
url: "http://localhost:8080/api/campaign/stats",
data: JSON.stringify(states),
cache: false,
success: function(data){
$("#resultarea").text(data);
},
dataType: "json",
contentType : "application/json"
});
});
});
我得到了那种输出:{“states”:null,“zips”:[“91941”]},但在这种状态下拉列表为空的情况下,我想要的是{“zips”:[“91941”]}。基本上,我只想要在 HTML 表单中具有填充字段的 JSON 值。
解决方案
// 此函数用于删除 null 或空值
const removeEmptyOrNull = (obj) => {
Object.keys(obj).forEach(k =>
(obj[k] && typeof obj[k] === 'object') && removeEmptyOrNull(obj[k]) ||
(!obj[k] && obj[k] !== undefined) && delete obj[k]
);
return obj;
};
$(文档).ready(函数() {
$('select').change(function() {
//var formData = JSON.stringify($("#cstates").serializeArray());
var states = { states : $("#cstates").val(), zips : $("#czips").val()};
//var data = JSON.stringify(states).replaceAll(".*\": null(,)?\\r\\n", "");
//{"states":null,"zips":["91941"]}
//str.replaceAll(".*\": null(,)?\\r\\n", "");
alert(JSON.stringify(states));
$.ajax({
type: "POST",
url: "http://localhost:8080/api/campaign/stats",
data: JSON.stringify( removeEmptyOrNull(states) ),
cache: false,
success: function(data){
$("#resultarea").text(data);
},
dataType: "json",
contentType : "application/json"
});
}); });
推荐阅读
- c# - c# 替代枚举以获得智能感知优势
- javascript - HTML5 画布保存实际大小的图像
- python - 如何从 dtype=object 制作表格或 DataFrame?
- java - Google App Engine Java Hibernate - SQL 连接超时
- java - 如何修复 Spring Rest 和 ajax 中的 OPTIONS 401 未经授权的错误?
- javascript - 如何在本机反应中使用for循环遍历数组?
- javascript - 道具类型失败:提供给“按钮”的“对象”类型的无效道具“onClick”,应为“功能”
- python - 如何处理跨多个类的运行时生成的数据?
- shader - 纹理玻璃折射和透明度
- r - 需要使导入功能更快速