javascript - js-yaml -> 解析 ruby​​ 类型

标签 javascript ruby yaml

我正在用 JavaScript 制作一个 Ruby 控制台,因此需要准确地将 Ruby 对象信息发送到渲染器进程。我决定使用 YAML,因为在 Ruby 端使用 YAML 非常容易,并且包含所需的所有信息。但我不断收到错误。

拿下面的 ruby :

[Test,Test.new].to_yaml

这将转换为以下 YAML:
---
- !ruby/class 'Test'
- !ruby/object:Test {}

当我尝试用 JS-YAML 解析它时我们收到以下错误:
unknown tag !<!ruby/class> at line 2, column 21:
    - !ruby/class 'Test'
                        ^

所以我希望这会发生,因为 JavaScript 中的 YAML 没有 Ruby 类型!我已经看到一种解决方案是创建新的 YAML 类型来处理这些数据:
var RubyClassType = new jsyaml.Type('!ruby/class', {
  kind: 'class'
});

但是,在理想的世界中,我不必定义每个单独的类型。在理想的世界中,所有未知类型都将被视为相同(例如作为 yaml 序列),否则 ruby​​ 不会首先生成奇怪的 ruby​​ 类型。我可以在不必在 JavaScript 中定义每个 Ruby 类型的情况下解决这个问题吗?

最佳答案

看起来这可以在 JS-YAML 中处理如下:handle_unknown_types.js
不会接受这个作为答案,因为 ruby​​-first 解决方案会更好。

关于javascript - js-yaml -> 解析 ruby​​ 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51300365/

相关文章:

javascript - 上传文件对象结构

ruby-on-rails - Rails 4 不存储数据、种子或默认模型保存

Ruby 对象到 JSON 并返回

ruby - 通过参数访问对象的 `self`

amazon-web-services - ansible list 文件的正确语法是什么?

python - 使用 Python 读取 YAML 文件会导致 yaml.composer.ComposerError : expected a single document in the stream

javascript - webpack -p 禁用我的 ejs 模板中的 es2015 功能

javascript - 在 Javascript 对象中查找键并获取每个键的值

javascript - React-Native-Maps 如何绘制折线

python - 如何在 Python 中将折叠标量转储到 YAML(使用 ruamel?)