typescript - null konverteras till "null" i Angular 5 HTTP-get-förfrågan
Jag arbetar för närvarande med att migrera vår applikation från Angular 4 till Angular 5. I Angular 5, när vi skickar ett objektmodell som parametrar och om ett av värdena är null, så konverteras det till strängen "null". Detta orsakar problem för oss. Följande är sättet som parametrarna sätts på:
options = {
headers: header, params: Object.getOwnPropertyNames(jsonParamObject)
.reduce((p, key) => p.set(key, jsonParamObject[key]), new HttpParams())
};
I koden ovan använder vi 'jsonParamObject' som skickas av den som anropar denna metod. Detta objekt kan ha ett valfritt antal värden. Så om objektet har ett av värdena som null och när vi gör en HTTP-förfrågan, omvandlas värdet null till strängen "null". Kan du vänligen låta mig veta hur detta kan undvikas eller om det finns något alternativ. Ett av alternativen skulle vara att använda "0" istället för null, men det skulle kräva många kodändringar i vår applikation, så jag letade efter ett enklare/bättre tillvägagångssätt.
Svar #1
Jag hade samma problem med en egenskap i ett objekt. Denna egenskap kallas parent_id och objektet kallas dataObj.
För att lösa det använde jag följande?
this.dataObj.parent_id = this.dataObj.parent_id == 'null' ? null : this.dataObj.parent_id;
Svar #2
Jag stötte på samma problem där jag försökte skicka en sträng från klientsidan. Den blev alltid konverterad till "null" när jag skickade en null-sträng.
Istället för att skicka den nollsträng, skickade jag en tom sträng ("") vilket fungerade.
