2017-06-15 3 views
0

Hey ich versuche, ein JSON-Objekt oder besser gesagt, was ich glaube, ist ein JSON-Objekt. Im Folgenden finden Sie meine aktuellen Code:JSON stringify json Objekt typescript/eckig

const user: any = { 
     Username: username, 
     Password: password 
}; 

console.log('Data: ' + JSON.stringify(user)); 

Die Konsole nur ausdruckt:

Data: {} 

Wie kann ich meine „JSON-Objekt“ ändern, damit es nicht leer zurückkehren?

+0

Ihr Objekt ist falsch Es gibt keine Werte, so etwas wird funktionieren 'const user: any = {Benutzername: 'John', Passwort: '123'};' –

+0

Sorry Benutzername und Passwort sind Variablen, die übergeben werden, aber kommen sie zu denken, sie könnten nicht initialisiert .... Dumm: S – SlyOtis

Antwort

1

Sie erhalten ein leeres Objekt, wenn sowohl der Benutzername als auch das Passwort nicht definiert sind. Angular erstellt keine Schlüssel mit undefinierten Werten.

Das Objekt so, wie Sie es haben (ohne Anführungszeichen) verweist JavaScript Variablen und sie können nicht Istwerten und nicht Variablenreferenzen enthalten:

{ 
    Username: usernameVariable, 
    Password: passwordVariable 
} 

Wenn Sie noch diese Variablen definiert haben, dann werden sie nicht habe einen Wert von "undefined".

Wenn Sie jedoch Anführungszeichen um die Werte haben, dann werden sie Istwerten im JSON-Objekt sein:

{ 
    Username: "usernameValue", 
    Password: "passwordValue" 
} 
+0

Undefinierte Werte ?! Mögen Sie Männer ein Modell für das Objekt? Ich kann das gewünschte Ergebnis erzielen, wenn ich 'JSON.stringify ({Usename: Benutzername, Passwort})' warum ?! Aber ich brauche es später als Variable. – SlyOtis

+0

Im Moment übersetzen Sie das Array in 'CONST user' Array vom Typ' any ', die' Username' Variable vom Typ 'username' von' null' und eine 'Password' Variable vom Typ' password' mit dem Wert von 'null' enthalten . Sie müssen also entweder '' '' '' '' '' ''um die Werte zu sagen, sie sind Werte nicht Typen. –

+0

Es ist nicht Angular, dass die Schlüssel mit undefinierten Werten nicht erstellt. Das geschieht in der' JSON.stringify' -Funktion , die nicht Teil von Angular ist. JS wird ein solches Objekt gerne erstellen. Siehe [MDN] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/ stringify) für weitere Informationen – Amy

-2

Ich denke, dass dies funktionieren würde ...

<!DOCTYPE html> 
<html> 
<body> 
<p id="demo"></p> 

<script> 

var user = { 
    Username: username, 
    Password: password 
    }; 

var myJSON = JSON.stringify(user); 
    document.getElementById("demo").innerHTML = myJSON; 

</script> 

</body> 
</html> 
+0

Dies ist vorausgesetzt, Sie haben Benutzername und Passwort ein. –

+0

Aaaaaand Ich habe gerade gesehen, dass das eckige Etikett hatte ... Ich bin ein Idiot –

+0

Das beiseite, das ist immer noch eine schlechte Antwort.Es hat keine Erklärung und repariert eigentlich nichts. – Amy

Verwandte Themen