问题标签 [openstruct]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
685 浏览

ruby - 如何以编程方式向对象添加属性?

我有一个哈希数组,我宁愿把它变成一个对象数组,并以编程方式将属性添加到这些对象中。

我正在尝试这个

回顾一下我正在尝试做的事情

但是以编程方式,例如,如果数组/哈希看起来像这样

0 投票
2 回答
5442 浏览

ruby - 我可以扩展一个 Ruby 类以动态地表现得像 OpenStruct 吗?

我有一个包含模块的 Ruby 类。我希望包含类的行为类似于 OpenStruct。我如何在不显式继承 OpenStruct 的情况下实现这一点?

代替

0 投票
0 回答
400 浏览

ruby - OpenStruct 是否支持嵌套?如果是,我如何使用 Nokogiri 构造 XML?如果没有,可以使用 Nokogiri 和 JSON 来完成吗?

@Jamie 提供的早期解决方案似乎仅适用于少数场景。解决方案是

虽然我有以下 XML 要使用 Nokogiri 构建。我只是想知道,如果这不能使用 OpenStruct 完成。这可以使用 Json 完成吗?如果是,您能否建议我如何使用 Nokogiri 和 Json 构建它。

下面是这个XML,我要构造...

我有以下以 OpenStruct 格式组织的数据...

我不确定 OpenStruct 是否可行,因为它缺乏嵌套功能。有没有其他方法可以使用 JSon 来实现这一点而没有任何突出的限制?请更正我之前的代码。

要查看这个较早的问题,如何使用 Nokogiri 在 NodeSet 中添加子节点单击 [这里] (http://stackoverflow.com/questions/10300095/how-to-add-child-nodes-in-nodeset-using-nokogiri)

我看到以下 OpenStruct 的问题......

我想访问第一个“catalogProductInfo”的“productType”,我说“collection.catalogList.catalogProductInfo.productType.content”,我收到以下错误

我被困在这里,如果这种情况想出去。如果无法使用 OpenStruct 组织数据。这可以使用 JSON 来完成吗?? 还建议我做 Nokogiri 和 JSon 的方法。帮帮我。

0 投票
2 回答
1419 浏览

ruby - 将 OpenStruct/Hash 转换为 XML

我有一组 OpenStruct 元素,我需要使用这些元素在 Nokogiri 的帮助下构建 XML。

我尝试使用以下代码..根据您的回答(精选元素)

我需要如下输出...

我试图在嵌套的 OpenStruct 元素数组中循环,但无法找到正确的逻辑......

Ref..如何使用 Nokogiri 在 NodeSet 中添加子节点

0 投票
2 回答
534 浏览

ruby-on-rails - 为什么当带有转储值的散列发生变化时,OpenStruct 值会发生变化?

我想知道发生了什么。

当我执行以下操作时:

这导致:

如果我然后创建并更改一些参数:

这导致 OpenStruct 更改为:

如果我更改参数哈希,为什么这个 OpenStruct 会改变?有没有办法在不更改 OpenStruct 的情况下更改参数哈希?

谢谢!

0 投票
1 回答
318 浏览

ruby - OpenStruct.new 存储属性但不检索它

创建一个新的 Ruby OpenStruct 对象后,我可以存储属性但不能检索它们(我得到一个空行,而是返回nil):

如果我尝试存储具有不同名称的其他属性,一切都会按预期工作。这个问题似乎只在我存储一个名为y. 我正在使用以下版本:

ruby 1.9.2p320 (2012-04-20 revision 35421) [i686-linux]

有人知道发生了什么吗?

0 投票
2 回答
492 浏览

ruby - 将 marshal_load 与 OpenStruct 一起使用

如何使用 OpenStruct 的 marshal_load 实用程序?它似乎没有按预期工作。

文档给出了这个例子,但它似乎不起作用。

如果不是这种方式,我如何将哈希加载到 OpenStruct 中(不使用构造函数)?

对于上下文:我正在从 YAML 文件中加载哈希并将其加载到 OpenStruct 子类的现有实例中。

0 投票
2 回答
11792 浏览

ruby - 什么时候应该使用 OpenStruct 而不是 Hash?

我喜欢“任意属性的定义”,并且我认为 ruby​​ 中的 OpenStruct 有时感觉比使用哈希更干净,但我很好奇是否还有其他特定优势或用例使 OpenStruct 成为比简单使用更好的选择一个哈希。

0 投票
6 回答
4247 浏览

ruby - 访问 OpenStruct 中不存在的属性时引发异常

我试图弄清楚如何做到这一点,以便在我尝试访问尚未设置的属性时,OpenStruct 的子类(或与此相关的任何类)或哈希将引发自定义异常。我无法做到这一点define_methodmethod_missing所以我不知道应该如何在 Ruby 中完成。

这是一个例子:

我可以想象它必须是这样的:

编辑:存在的属性不应引发异常。我正在寻找的功能是让我可以自由地访问属性,如果它碰巧不存在,我的自定义异常将被引发。

0 投票
1 回答
1295 浏览

ruby - 如何在 Ruby 中将嵌套 YAML 转换为嵌套数组和 OpenStruct

我应该如何将一系列嵌套的哈希(嵌套到任意深度)转换为一系列嵌套的 OpenStructs?我正在加载一个大的 YAML 文件,但我不喜欢accessing['everything']['like']['this'].

我使用 Google 找到了一些部分解决方案,但我认为这会是一个很好的问题。

这是我从http://andreapavoni.com/blog/2013/4/create-recursive-openstruct-from-a-ruby-hash找到的解决方案之一:

这个解决方案的问题是它没有考虑数组。