将JSON数据放入yml文件中
我有一个ruby文件,它返回一个JSON数据结构将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',
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')