如何使Angular JSON序列化程序忽略空值?

时间:2019-06-04 14:48:51

标签: json angular angular-httpclient

我有一个使用HttpClient发送的对象,该对象可能具有一些null属性。我想知道Angular中是否有任何内置解决方案可以确保不对null属性进行序列化。

让我们以这个模型为例:

export class Dummy {
  public constructor(
    public readonly foo: string,
    public readonly bar: string
  ) { }
}

这项服务:

import { HttpClient } from '@angular/common/http';

export class DummyService {
  public constructor(private readonly httpClient: HttpClient) { }

  public dummyMethod(dummyObject: Dummy): Observable<any> {
    return this.httpClient.Post('https://api.dummy/v1/dummies', dummyObject)
  }
}

如果dummyObject === new Dummy("FooValue", null),那么我希望此JSON被序列化:{ "foo": "FooValue" }

2 个答案:

答案 0 :(得分:1)

  

在JSON中,值必须是以下数据类型之一:

a string
a number
an object (JSON object)
an array
a boolean
null

因此它不能忽略null。但是我们在这里看不到undefined,因此可以使用它代替null,并且序列化的对象将忽略它。

答案 1 :(得分:0)

您可以使用Lodash解决此问题,您可以在本文中引用

Handle null in Josn