Ruby中如何将嵌套散列转换成点分隔字符串的代码一行实现?
- 内容介绍
- 文章标签
- 相关推荐
本文共计433个文字,预计阅读时间需要2分钟。
要将YAML转换为点分隔的字符串,可以使用Ruby的`yaml`库来解析YAML内容,然后递归地遍历数据结构,将每个键和值转换为点分隔的格式。以下是一个简单的示例:
rubyrequire 'yaml'
def yaml_to_dotSeparated(yaml_str) data=YAML.safe_load(yaml_str) dot_separated(data, '')end
def dot_separated(data, prefix='') case data when Hash data.map do |key, value| dot_separated(value, #{prefix}#{key}.) end.join when Array data.map { |item| dot_separated(item, prefix) }.join else #{prefix}#{data} endend
示例YAML字符串yaml_str=<<-YAMLname: John Doeage: 30children: - name: Jane Doe age: 10YAML
转换YAML到点分隔的字符串puts yaml_to_dotSeparated(yaml_str)
这段代码首先定义了一个`yaml_to_dotSeparated`方法,它使用`YAML.safe_load`来解析YAML字符串。然后,它调用`dot_separated`方法来递归地将数据转换为点分隔的字符串。`dot_separated`方法根据数据类型(哈希、数组或值)来决定如何格式化输出。
本文共计433个文字,预计阅读时间需要2分钟。
要将YAML转换为点分隔的字符串,可以使用Ruby的`yaml`库来解析YAML内容,然后递归地遍历数据结构,将每个键和值转换为点分隔的格式。以下是一个简单的示例:
rubyrequire 'yaml'
def yaml_to_dotSeparated(yaml_str) data=YAML.safe_load(yaml_str) dot_separated(data, '')end
def dot_separated(data, prefix='') case data when Hash data.map do |key, value| dot_separated(value, #{prefix}#{key}.) end.join when Array data.map { |item| dot_separated(item, prefix) }.join else #{prefix}#{data} endend
示例YAML字符串yaml_str=<<-YAMLname: John Doeage: 30children: - name: Jane Doe age: 10YAML
转换YAML到点分隔的字符串puts yaml_to_dotSeparated(yaml_str)
这段代码首先定义了一个`yaml_to_dotSeparated`方法,它使用`YAML.safe_load`来解析YAML字符串。然后,它调用`dot_separated`方法来递归地将数据转换为点分隔的字符串。`dot_separated`方法根据数据类型(哈希、数组或值)来决定如何格式化输出。

