2016-02-12 98 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);