JSON的循环结构,UI运行时错误TypeError

时间:2019-04-15 13:58:31

标签: json angular typescript

尝试解析和字符串化一些JSON数据时出现错误。

在这一行:

this.copyOfColumns = JSON.parse(JSON.stringify(Object.assign([], this.columns)));

这里是整个@Input(使用Angular 4):

  @Input()
  set gridColumns(gridColumnsArr: Array<object>) {
    console.log('gridColumnsArr');
    console.log(gridColumnsArr);
    this.columns = this.sortActiveAndInactiveColumns(gridColumnsArr);
    console.log('this.columns');
    console.log(this.columns);
    this.copyOfColumns = JSON.parse(JSON.stringify(Object.assign([], this.columns)));
    console.log('this.copyOfColumns');
    console.log(this.copyOfColumns);
  }

以下是记录到控制台的数据(this.columns)...以及以下错误:

enter image description here

1 个答案:

答案 0 :(得分:1)

我假设您想通过使用JSON.parse(JSON.stringify())深复制该数组。显然,您的数据结构具有circular references,而JSON.stringify()失败。

您应该清理数据以不包含ciruclar引用,或者尝试使用类似flatted的库