首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当变量引用流中的对象时,如何在流中执行变量替换?

当变量引用流中的对象时,如何在流中执行变量替换?
EN

Stack Overflow用户
提问于 2015-02-02 07:35:28
回答 1查看 30关注 0票数 0

我正在使用Node,并且有一个对象流。每个对象都包含可以引用其他对象的字符串;本质上,这些对象在流中是自引用的。我想将这些引用替换为与它们所引用的对象相关联的值。然而,如果不先缓冲整个流,然后循环回来进行替换,这似乎是不可能的。

有没有什么技术可以在流中进行自引用变量替换?我正在考虑sidechain流或缓冲区的可能性,但由于无法返回到较旧的块,替换它们似乎是不可能的。

数据的示例如下所示,但是,每个对象都是一个块,而不是一个数组。

代码语言:javascript
复制
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}引用。每个单独的对象都有一个键,而只有一些对象可能有引用。

EN

回答 1

Stack Overflow用户

发布于 2015-02-02 10:01:31

在序列化流中序列化对其他对象的引用的通常方法是为流中的每个对象创建ID,并用ID值替换引用,然后将ID添加到流中的每个对象。然后,解释序列化数据的代码必须知道哪些字段包含引用ID,然后可以用对新创建的对象的引用替换这些字段。流中的前向引用需要更多的工作,因为您必须保留一个挂起的引用it列表,以便查找引用所引用的主机对象,但这一切都是可以完成的。

每当我遇到这样的问题时,我通常会寻找一种更简单的方法来存储数据,这种方法不一定是活动对象的直接表示,然后编写一些代码,仅从存储的数据重建活动对象,而不是直接序列化,但有时处理起来要简单得多。这是否对你有效,完全取决于你的具体情况和数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28269244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档