gpt4 book ai didi

json - 使用 ko.toJSON 进行 knockout 序列化 - 如何忽略 null 属性

转载 作者:行者123 更新时间:2023-12-03 03:29:00 27 4
gpt4 key购买 nike

使用时:

var dataToSave = ko.toJSON(myViewModel);

..是否可以序列化空值?

序列化我当前的 viewModel 会创建大约 500Kb 的 JSON,其中大部分最终结果如下:

"SomeObject": {
"Property1": 12345,
"Property2": "Sometext",
"Property3": null,
"Property4": null,
"Property5": null,
"Property6": null,
"Property7": null,
"Property8": null,
"Property9": false
}

如果我能让序列化器忽略空值,那么这可以减少到:

"SomeObject": {
"Property1": 12345,
"Property2": "Sometext",
"Property9": false
}

有什么想法可以指示序列化器忽略空值吗?

最佳答案

请记住ko.toJSON只是 JSON stringify 的修改。您可以传入replacer function .

作为在 Knockout 中使用替换函数的示例,我将 JSFiddle 放在一起。基于 knockout tutorials 之一。请注意 makeJsonmakeCleanJson 函数之间的区别。我们可以选择不在替换函数中返回任何值,并且该项目将在 JSON 字符串中被跳过。

self.makeJson = function() {
self.JsonInfo(ko.toJSON(self.availableMeals));
};

self.makeCleanJson = function() {
self.JsonInfo(ko.toJSON(self.availableMeals, function(key, value) {
if (value == null)
{
return;
}
else
{
return value;
}
}));
};

关于json - 使用 ko.toJSON 进行 knockout 序列化 - 如何忽略 null 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12461037/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com