Búsqueda de sitios web

typescript - null se está convirtiendo en "null" en la solicitud HTTP get de Angular 5


Actualmente estoy trabajando en la migración de nuestra aplicación de Angular 4 a Angular 5. En Angular 5, cuando enviamos un modelo de objeto como parámetros y si uno de los valores es null, entonces se convierte en la cadena "null". Esto nos está causando problemas. La siguiente es la forma en que se están estableciendo los parámetros:

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

En el código anterior estamos usando 'jsonParamObject' que es enviado por el llamador de este método. Este objeto podría tener cualquier número de valores. Así que si el objeto tiene uno de los valores como null y cuando estamos haciendo una solicitud HTTP, el valor null se está convirtiendo en la cadena "null". ¿Podría decirme cómo se puede evitar esto o si hay alguna alternativa? Una de las alternativas sería usar "0" en lugar de null, pero eso requeriría muchos cambios en el código de nuestra aplicación, así que estaba buscando un enfoque más fácil/mejor.

Respuesta #1

Tuve el mismo problema con una propiedad en un objeto. Esta propiedad se llama parent_id y el objeto se llama dataObj.

¿Para resolverlo, usé lo siguiente?

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

Respuesta #2

Me encontré con el mismo problema donde estaba tratando de pasar una cadena desde el lado del cliente. Siempre se convertía en "null" cuando pasaba una cadena nula.

En lugar de pasar la cadena nula, paso una cadena vacía ("") lo cual funcionó.