打字稿模型到json - 忽略空值属性
Posted
技术标签:
【中文标题】打字稿模型到json - 忽略空值属性【英文标题】:typescript model to json - Ignore null value property 【发布时间】:2018-11-09 21:11:18 【问题描述】:在 Angular 4 应用程序中, 我的打字稿模型,
export class Person
fname:string,
lname?:string
lname 是可选的。在组件中填充如下模型
//Query form data
var people = form.get('people');
let model = new Person()
fname: people.get('firstname'),
lname: people.get('lastname')
在这种情况下,如果我尝试将我的模型转换为 json,当用户没有输入姓氏的值时。我的 json 输出如下所示,
'fname': 'xyz', 'lname': null
预期结果:
但我想消除 json 中的所有空值属性。所以我期待
'fname':'xyz'
但是当用户在 lname 处输入值时。 json 应该如下所示
'fname':'xyx', 'lname': 'abc'
我如何从打字稿模型中生成这个 json 结果
【问题讨论】:
【参考方案1】:在插入值之前检查表单的 lastname 属性的内容。如果它不是字符串,则不要插入值,假设这是该属性包含的内容。
像这样:
//Query form data
var people = form.get('people');
const model = new Person();
model.fname = people.get('firstname');
if (typeof people.get('lastname') === 'string')
model.lname = people.get('lastname');
【讨论】:
谢谢。简单修复【参考方案2】:我为此创建了一个实用程序库。也许它可以提供帮助。 https://www.npmjs.com/package/ngx-super-model
在扩展 Model 类的实例上使用 clean() 函数将删除 null、undefined 和 NaN。
【讨论】:
以上是关于打字稿模型到json - 忽略空值属性的主要内容,如果未能解决你的问题,请参考以下文章
Newtonsoft.Json高级用法 1.忽略某些属性 2.默认值的处理 3.空值的处理 4.支持非公共成员 5.日期处理 6.自定义序列化的