我正在尝试初始化typescript中的对象,该对象需要“options”参数的JSON字符串。确切地说,它是对象here。 options参数必须是JSON字符串,而不是用于初始化dijit的对象。
有没有办法从typescript对象创建一个JSON字符串而不是一个手动过程?
请不要链接任何没有特别说“TypeScript”的问题,因为这个问题与TypeScript有关。虽然JavaScript的衍生物与编写代码的方式不同,因此这是唯一一个询问此问题当前与TypeScript有关的帖子。
答案 0 :(得分:77)
只需使用JSON.stringify(object)
即可。它内置于Javascript中,因此也可以在Typescript中使用。
答案 1 :(得分:4)
您可以使用Javascript中提供的标准JSON对象:
var a: any = {};
a.x = 10;
a.y='hello';
var jsonString = JSON.stringify(a);
答案 2 :(得分:0)
TS被编译为JS,然后执行。因此,您可以访问JS运行时中的所有对象。这些对象之一是JSON
对象。其中包含以下方法:
JSON.parse()
方法解析一个JSON字符串,构造该字符串描述的JavaScript值或对象。JSON.stringify()
方法将JavaScript对象或值转换为JSON字符串。示例:
const jsonString = '{"employee":{ "name":"John", "age":30, "city":"New York" }}';
const JSobj = JSON.parse(jsonString);
console.log(JSobj);
console.log(typeof JSobj);
const JSON_string = JSON.stringify(JSobj);
console.log(JSON_string);
console.log(typeof JSON_string);
答案 3 :(得分:0)
使用这些JSON。(parse / stringify)方法时要小心。我对复杂的对象进行了同样的操作,结果发现,要序列化的对象树中的所有其他实体,具有更多对象的嵌入式数组具有相同的值。
const temp = [];
const t = {
name: "name",
etc: [
{
a: 0,
},
],
};
for (let i = 0; i < 3; i++) {
const bla = Object.assign({}, t);
bla.name = bla.name + i;
bla.etc[0].a = i;
temp.push(bla);
}
console.log(JSON.stringify(temp));
答案 4 :(得分:0)