【问题标题】:null is getting converted to "null" in Angular 5 HTTP get requestnull 在 Angular 5 HTTP 获取请求中被转换为“null”
【发布时间】:2018-10-05 06:33:32
【问题描述】:

我目前正在将我们的应用程序从 Angular 4 迁移到 Angular 5。在 Angular 5 中,当我们将对象模型作为参数发送时,如果其中一个值为 null,那么它将被转换为“null”字符串。这给我们带来了问题。以下是设置参数的方式:

options = {
                headers: header, params: Object.getOwnPropertyNames(jsonParamObject)
                    .reduce((p, key) => p.set(key, jsonParamObject[key]), new HttpParams())
            };

在上面的代码中,我们使用了由该方法的调用者发送的“jsonParamObject”。该对象将具有任意数量的值。因此,如果对象的值为 null 并且当我们发出 http 请求时,值 null 将被转换为“null”字符串。您能否让我知道如何避免这种情况或是否有任何替代方法。其中一种替代方法是使用“0”而不是 null,但这需要在我们的应用程序中进行大量代码更改,所以我正在寻找一个更简单的方法/更好的方法。

【问题讨论】:

  • 代码太多!只需使用{params: jsonParamObject}
  • @AluanHaddad:是的,我尝试过直接使用 jsonParamObject,但它给出了同样的错误。所以这不是我们传递参数的方式。该值会自动转换为空字符串。
  • @Valla 您可以在设置{params: jsonParamObject}之前将对象属性中的null值替换为“0”
  • @Niladri:是的,这也是我在问题中提到的替代方案之一。但这需要进行大量更改,所以我想知道这是否是唯一的方法,或者我是否可以在客户端进行任何更改以帮助我解决问题。

标签: angular typescript angular5


【解决方案1】:

我对对象中的属性也有同样的问题。 此属性称为parent_id,对象称为dataObj

为了解决它,我使用了以下方法?

this.dataObj.parent_id = this.dataObj.parent_id == 'null' ? null : this.dataObj.parent_id;

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,我试图从客户端传递一个字符串。当我传递一个空字符串时,它总是被转换为“null”。

    我没有传递空字符串,而是传递了一个有效的空字符串(“”)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-08
      • 1970-01-01
      • 2017-08-24
      • 2018-07-24
      • 2022-06-22
      相关资源
      最近更新 更多