我正在使用Node,并且有一个对象流。每个对象都包含可以引用其他对象的字符串;本质上,这些对象在流中是自引用的。我想将这些引用替换为与它们所引用的对象相关联的值。然而,如果不先缓冲整个流,然后循环回来进行替换,这似乎是不可能的。
有没有什么技术可以在流中进行自引用变量替换?我正在考虑sidechain流或缓冲区的可能性,但由于无法返回到较旧的块,替换它们似乎是不可能的。
数据的示例如下所示,但是,每个对象都是一个块,而不是一个数组。
translations = [
key: 'client'
parents: ['ui']
values:
en: 'THE COMPANY'
fr: 'LE COMPANIE'
,
key: 'title'
parents: ['ui']
values:
en: 'hello ${ui.client} world2'
fr: 'bonjour monde2'
]引用是由parents + key完成的,因此称为${ui.client}引用。每个单独的对象都有一个键,而只有一些对象可能有引用。
发布于 2015-02-02 10:01:31
在序列化流中序列化对其他对象的引用的通常方法是为流中的每个对象创建ID,并用ID值替换引用,然后将ID添加到流中的每个对象。然后,解释序列化数据的代码必须知道哪些字段包含引用ID,然后可以用对新创建的对象的引用替换这些字段。流中的前向引用需要更多的工作,因为您必须保留一个挂起的引用it列表,以便查找引用所引用的主机对象,但这一切都是可以完成的。
每当我遇到这样的问题时,我通常会寻找一种更简单的方法来存储数据,这种方法不一定是活动对象的直接表示,然后编写一些代码,仅从存储的数据重建活动对象,而不是直接序列化,但有时处理起来要简单得多。这是否对你有效,完全取决于你的具体情况和数据。
https://stackoverflow.com/questions/28269244
复制相似问题