2016-02-12 103 views
12

我想初始化打字稿中需要JSON字符串作爲「選項」參數的對象。確切地說,它是對象​​。 options參數必須是JSON字符串,而不是用於初始化dijit的對象。打開JSON字符串的打字稿對象

有沒有辦法從一個打字稿對象創建一個JSON字符串,而不是一個手動過程?

請不要鏈接任何沒有具體說明「TypeScript」的問題,因爲這個問題特別與TypeScript有關。雖然JavaScript的派生方法與編寫代碼的方式不同,但是這是唯一一個詢問當前與TypeScript相關問題的文章。

+1

你確定你需要一個JSON字符串?它看起來只需要一個對象。但是,您可以使用['JSON.stringify']將任何對象(假設它沒有循環)轉換爲JSON(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) –

+0

感謝邁克,我會放棄它作爲一個對象,但不管如何,因爲它可能對未來其他人(或仍然是我)有用:) – user1567453

+0

[Stringify JavaScript object] (http://stackoverflow.com/questions/18383854/stringify-javascript-object) – toskv

回答

32

只要使用JSON.stringify(object)即可。它內置於Javascript中,因此也可以在Typescript中使用。

+0

可能會選擇這一個作爲答案,因爲它解釋了爲什麼我可以在Typescript中使用JSON.stringify。 8分鐘之前無法接受XD會看到彈出的內容。 – user1567453

+1

使用適當的對象定義遵循以下指南,這將無法正常工作,因爲所有的鍵都將使用私有變量名稱(如果下劃線與您的私有成員一起使用)https://www.typescriptlang.org/docs/handbook/classes。 html#public-private-and-protected-modifiers –

+0

@ N15M0_jk是的,我也注意到了。我使用JSON.stringify(obj).replace(/「_/g,'」')來解決這個問題。 – HammerNL

4

您可以使用標準的JSON對象,可在Javascript:

var a: any = {}; 
a.x = 10; 
a.y='hello'; 
var jsonString = JSON.stringify(a);