打字稿模型到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 - 忽略空值属性的主要内容,如果未能解决你的问题,请参考以下文章