JSON.stringify()-对象的自定义序列化程序

安德里·罗曼查克(Andrii Romanchak)

假设我有一个对象:

const a = {
  foo: 123,
  bar: 'example'
}

该对象是许多其他对象的一部分,即

const b = {
  a: a,
  anotherField: "example"
}

实际上,我使用的是TypeScript,所有这些对象都属于同一类,我认为这并不重要。

b对象序列化为JSON之后,我需要获取此字符串(即,我只是从中获取foo字段a):

{ a: 123, anotherField: "example" }

告诉JSON.stringify()如何将a对象转换为字符串的最简单,最优雅的方法是什么

可能类似于Python允许的内容。

j

您可以toJSON在中定义a

如果要被字符串化的对象具有名为toJSON的属性,其值是一个函数,则toJSON()方法将自定义JSON字符串化行为:代替被序列化的对象,由toJSON()方法返回的值将被序列化,而不是被序列化的对象。

(来源:MDN

例如:

class A {
  constructor(foo, bar) {
    this.foo = foo;
    this.bar = bar;
  }

  toJSON() {
    return this.foo;
  }
}

const a = new A(123, "some name");
const b = {
  a: a,
  anotherField: "example"
};

console.log(JSON.stringify(b)); // "{"a":123,"anotherField":"example"}"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章