Json 中的 Angular 2 参考

Posted

技术标签:

【中文标题】Json 中的 Angular 2 参考【英文标题】:Angular 2 reference in Json 【发布时间】:2018-04-16 11:18:29 【问题描述】:

我正在处理 Ionic2 项目,我想创建一个模型并将其保存到一个 json 文件中,以便稍后读取它以再次构建我的模型。我的问题是关于对象引用,例如:

当我用对象 A、B、C 构建 json 时:

let A = new A();
let B = new B();
let C = new C();

A.B = B;
A.C = C;
B.C = C; 

所以我的 json 是这样的:

A : 
   B :  C :  ...  ,
   C :  ... 

此时C,A.C和B.C是同一个对象。因此,当我对 C 进行更改时,B.C 和 A.C 也有相同的更改。

但是,当我保存在文件中,然后读取文件时,对象是副本,所以当我更改 B.C 时,A.C 保持旧状态。

所以我的问题:

是否有任何选项可以将引用保存在 Json 文件中或在读取相同对象后进行检测?

谢谢!

【问题讨论】:

【参考方案1】:

当该对象被转换为 JSON 字符串然后再次返回时,它们不再作为同一个对象链接。此外,真的没有办法让 json 知道一个事物是对另一个事物的引用。此外,当您从 json 加载它时,它甚至不知道 A、B 和 C 是特定“类”的实例。它们只是普通的 javascript 对象 (POJO)。

如果您希望它们成为 A、B 和 C 的实例,则需要创建 A、B 和 C 的新实例,将 JSON 中的值设置为这些对象,然后设置 AC = BC或 BC = AC

【讨论】:

以上是关于Json 中的 Angular 2 参考的主要内容,如果未能解决你的问题,请参考以下文章

一“括”抵千言 —— Angular 2中的绑定

Angular 2 中的 JSON 管道不起作用

.net core SPA Angular中的脚手架管理员CRUD

Angular 项目中的 Blazor webassembly

如何重用 Angular 测试文件中的所有导入

在 Angular 6 项目中使用 2 tslint.json 文件