将JSON数据放入yml文件中

将JSON数据放入yml文件中,json,ruby,yaml,Json,Ruby,Yaml,我有一个ruby文件,它返回一个JSON数据结构 class BankDetails DETAILS = [ { currencyCode: 'usd', currencyName: 'United States Dollar', iban: 'CH13 0070 0130 0089 9043 3', bankName: 'Zürcher Kantonalbank', bic: 'ZKBKCHZZ80A',

我有一个ruby文件,它返回一个JSON数据结构

    class BankDetails
      DETAILS = [
    {
      currencyCode: 'usd',
      currencyName: 'United States Dollar',
      iban: 'CH13 0070 0130 0089 9043 3',
      bankName: 'Zürcher Kantonalbank',
      bic: 'ZKBKCHZZ80A',
    },
    {
      currencyCode: 'chf',
      currencyName: 'Swiss Franc',
      iban: 'CH60 0070 0110 0067 2153 4',
      bankName: 'Zürcher Kantonalbank',
      bic: 'ZKBKCHZZ80A',
    },
    {
      currencyCode: 'eur',
      currencyName: 'Euro',
      iban: 'CH88 0070 0130 0089 9044 1',
      bankName: 'Zürcher Kantonalbank',
      bic: 'ZKBKCHZZ80A',
    },
    {
      currencyCode: 'zar',
      currencyName: 'South African Rand',
      iban: 'CH60 0070 0110 0067 2153 4',
      bankName: 'Zürcher Kantonalbank',
      bic: 'ZKBKCHZZ80A',
    },
    {
      currencyCode: 'nad',
      currencyName: 'Namibian Dollar',
      iban: 'CH60 0070 0110 0067 2153 4',
      bankName: 'Zürcher Kantonalbank',
      bic: 'ZKBKCHZZ80A',
    },

  ].freeze

  def self.fetch_bank_details
    DETAILS
  end
end

现在,我想将相同的JSON放入一个新的yml文件中,并以与从ruby文件调用
BankDetails
类相同的结构获取数据。yml文件的确切结构应该是什么?

从技术上讲,您所展示的既不是YAML也不是JSON,而是一个包含哈希的Ruby数组

在此语法中,它不是有效的JSON。通过修复语法问题(引用键,删除尾随逗号),您可以获得大致等效的JSON表示(只要您指示解析器将哈希键作为符号而不是字符串读取)

如果您选择了正确的代码子集,它可能是有效的YAML,尽管以这种方式解析它不会得到与此YAML完全相同的数据结构,但哈希键将再次解析为字符串而不是符号

因此,要获得数据结构的等效YAML表示,只需使用
YAML.dump
从现有数据结构发出YAML文档:

require 'yaml'
puts YAML.dump(BankDetails::Details)

首先,您可以在YAML文件中简单地使用JSON。JSON是YAML的一个子集。这种结构有效吗<代码>默认值:银行详细信息:-货币代码:美元货币名称:美元iban:CH13 0070 0130 0089 9043 3银行名称:Zürcher Kantonalbank bic:ZKBKCHZZ80A-货币代码:chf货币名称:瑞士法郎iban:CH60 0070 0110 0067 2153 4银行名称:Zürcher Kantonalbank bic:ZKBKCHZZ80A这种结构能工作吗<代码>默认值:银行详细信息:-货币代码:美元货币名称:美元iban:CH13 0070 0130 0089 9043 3银行名称:Zürcher Kantonalbank bic:ZKBKCHZZ80A-货币代码:chf货币名称:瑞士法郎iban:CH60 0070 0110 0067 2153 4银行名称:Zürcher Kantonalbank bic:ZKBKCHZZ80A从您的评论中的格式是不可能说出来的。但是,您可以通过使用
YAML.load_file('/path/to/file')
解析文件并将解析的数据结构与原始数据结构进行比较来检查它。我应该在哪里编写这段代码
YAML.load_文件('/path/to/file')