在 Typescript 中将对象转换为 JSON

在 Typescript 中将对象转换为 JSON

Convert an Object to a JSON in Typescript

在 TypeScript 中使用该JSON.stringify()方法将对象转换为 JSON,例如const json = JSON.stringify(obj). JSON.stringify方法接受一个值,将其转换为 JSON 字符串并返回结果。

索引.ts
// 👇️ const obj: {name: string; country: string;} const obj = { name: 'Tom', country: 'Chile' }; // ✅ Convert to JSON // 👇️ const json: string const json = JSON.stringify(obj); // ✅ Parse back to Object // 👇️ const parsed: any const parsed = JSON.parse(json);

我们使用
JSON.stringify
方法将对象转换为 JSON。

我们传递给方法的唯一参数是对象。

JSON.stringify方法返回一个字符串,其中包含对象的 JSON 表示形式。

索引.ts
// 👇️ const obj: {name: string; country: string;} const obj = { name: 'Tom', country: 'Chile' }; // 👇️ const json: string const json = JSON.stringify(obj); console.log(typeof json); // 👉️ "string"

如果需要将 JSON 字符串转换回对象,请使用JSON.parse()
方法。

如果您使用该JSON.parse方法将 JSON 解析回对象,它将具有any.

索引.ts
const obj = { name: 'Tom', country: 'Chile' }; // ✅ Convert to JSON // 👇️ const json: string const json = JSON.stringify(obj); // ✅ Parse back to Object // 👇️ const parsed: any const parsed = JSON.parse(json);

您可以使用
类型断言
将类型从更改为
any对象的类型。

索引.ts
// 👇️ const obj: {name: string; country: string;} const obj = { name: 'Tom', country: 'Chile' }; // ✅ Convert to JSON // 👇️ const json: string const json = JSON.stringify(obj); console.log(typeof json); // 👉️ "string" // ✅ Parse back to Object // 👇️ const parsed: {name: string; country: string;} const parsed = JSON.parse(json) as typeof obj;

现在parsed变量已正确键入。

请注意undefined,函数和Symbol值不是有效的 JSON。如果您的对象包含其中任何一个,则在将对象转换为 JSON 字符串时它们将被忽略。

索引.ts
// 👇️ const obj: {id: symbol; name: undefined; age: () => number;} const obj = { id: Symbol('hello'), name: undefined, age: () => 5, }; // ✅ Convert to JSON // 👇️ const json: string const json = JSON.stringify(obj); console.log(json); // 👉️ {}
对象的所有键值对都没有转换为 JSON,因为它只包含 JSON 不兼容的值。

如果您要转换为 JSON 字符串的对象包含循环引用,您会得到一个TypeError: cyclic object value.

索引.ts
const obj: { name: string; country: string; newName?: any } = { name: 'Tom', country: 'Chile', }; obj.newName = obj; // ⛔️ Error: Converting circular structure to JSON const json = JSON.stringify(obj);

因为我们分配了对象的属性来引用对象,所以我们创建了一个循环引用,它在转换为 JSON 时会抛出异常。

发表评论