2017-06-15 120 views
0

嘿我想要做串化一個JSON對象,而不是我相信是一個JSON對象。下面是我當前的代碼:JSON stringify json對象打字稿/角

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

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

控制檯只能打印出:

Data: {} 

如何修改我的「JSON對象」,所以它不返回空的?

+0

你的對象是不正確,沒有值,像這樣的東西會工作'const user:any = {username:'John',password:'123'};' –

+0

很抱歉,用戶名和密碼是傳遞下來的變量,但認爲它們可能會不會被初始化......笨:S – SlyOtis

回答

1

如果用戶名和密碼變量都未定義,您將得到一個空對象。 Angular不會創建任何具有未定義值的鍵。

的對象,你把它(不帶引號)的方式被引用的JavaScript變量,它們可能不包含實際值,而不是變量引用:

{ 
    Username: usernameVariable, 
    Password: passwordVariable 
} 

如果您還沒有定義的變量又那麼他們將具有「未定義」的值。

但是,如果你身邊的值引號那麼他們將在JSON對象實際值:

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

未定義的值?!你們男人喜歡爲對象創建一個模型?我可以達到預期的結果,如果我做'JSON.stringify({使用名:用戶名,密碼})'爲什麼?!但我稍後需要它作爲變量。 – SlyOtis

+0

目前,您將array轉換爲''any'類型的CONST用戶數組,其中''用戶名'變量的類型爲'null',''密碼'變量的類型爲'password',值爲null。 。所以你需要在這些值的周圍加上''''或'''來告訴它們它們的值不是類型 –

+0

這不是Angular,它不會創建帶有未定義值的鍵,這發生在'JSON.stringify'函數中,它不是Angular的一部分,JS會高興地創建這樣一個對象,請參閱[MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/ stringify)以獲得更多信息 – Amy

-2

我認爲這會工作...

<!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

這是假設你有用戶名和密碼進來 –

+0

Aaaaaandand我剛剛看到這有角標記...我是個白癡 –

+0

不談,這仍然是一個不好的答案,它沒有解釋,也沒有真正解決任何問題。 – Amy