You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby中如何不使用命令行,通过代码实现JSON转YAML

Ruby 原生代码实现JSON转YAML(非命令行管道方案)

整个实现完全依托Ruby内置标准库完成,不需要调用命令行管道、也不需要安装第三方依赖,补全的代码逻辑如下:

  • 补充引入YAML标准库依赖,JSON解析后生成的Ruby原生对象,需要调用YAML库的序列化能力完成格式转换
  • 对已经完成字段提取、排序处理的Ruby数据对象,直接调用YAML序列化方法生成标准YAML字符串
  • 将生成的YAML内容写入预先创建的目标目录下的文件即可

完整可运行的代码:

require 'json'
# 补充YAML库引入,Ruby 2.0+版本默认自带该标准库
require 'yaml'

filepath = "./response.json"
directory_name = "read"
# 移除原代码中重复定义的冗余行
Dir.mkdir(directory_name) unless File.exist?(directory_name)

if File.file?(filepath)  
    storageJson = JSON.parse(File.read(filepath)).fetch('items', []).sort_by { |event| event['startTime'] }

    # 核心转换逻辑
    # 将处理后的Ruby对象序列化为YAML格式字符串,可通过参数调整输出格式
    yaml_content = YAML.dump(storageJson, line_width: -1)
    # 将序列化后的内容写入目标文件
    target_file_path = File.join(directory_name, "converted_items.yml")
    File.write(target_file_path, yaml_content)
end

补充说明:

  • line_width: -1 参数的作用是取消长内容自动折行,让输出的YAML格式更符合常规配置文件的使用习惯
  • 如果需要输出不带YAML默认文档分隔头的内容,可以在YAML.dump调用时追加header: false参数
  • 整个流程没有使用命令行重定向管道,完全通过Ruby代码的文件读写、格式序列化能力完成转换,符合要求的代码结构形式

内容的提问来源于stack exchange,提问作者theGreatRegression

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.23 23:54:07