【问题标题】:typescript model to json - Ignore null value property打字稿模型到json - 忽略空值属性
【发布时间】: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 结果

【问题讨论】:

    标签: jquery json angular typescript


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 2018-05-16
      • 2021-04-30
      • 2021-01-29
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 2021-07-24
      相关资源
      最近更新 更多