【发布时间】:2021-08-29 22:06:50
【问题描述】:
我正在做一个编码练习,我需要从 Ruby 中的 JSON 文件读取和解析,但是它要求我应该保持解决方案的开放性,以防将来使用其他文件类型。我目前已经专门为 JSON 编写了它,但我想不出一种方法来满足其他文件类型而不使用正则表达式 - 这可能又是文件类型特定的,因为我正在寻找数据以特定方式格式化。
有没有人对我如何做到这一点以适用于多种不同的文件类型有任何想法?
json_from_file = File.read("test.json")
hash = JSON.parse(json_from_file)
【问题讨论】:
-
您可以尝试使用 stackoverflow.com/questions/4600679/… 之类的令人生畏的方法来识别文件类型,然后在此基础上使用
case? -
这个问题太宽泛了。有太多可能的设计,并且没有任何限制可以帮助选择一个。工厂、策略、解析器框架,它们都可以以某种方式、形状或形式……或完全不同的东西使用。
-
了解工厂和战略模式。简而言之,您可能希望对不同的文件类型使用不同的处理程序,并且可能是默认的处理程序,它只会按原样读取文件而不进行任何解析。
标签: ruby-on-rails json ruby file