JSON 与 YAML
JSON.parse/generate、YAML 序列化配置、symbolize_names
JSON 与 YAML
Ruby 内置 JSON 和 YAML 支持——配置文件用 YAML(人类可读),数据传输用 JSON。
学完本章你将: 掌握 JSON.parse/generate、YAML 序列化。
JSON
ruby
require "json"
data = { name: "小明", age: 25, hobbies: ["编程", "跑步"] }
# 序列化
json = JSON.generate(data)
json = data.to_json # 等价
puts json
# {"name":"小明","age":25,"hobbies":["编程","跑步"]}
# 反序列化
parsed = JSON.parse(json)
puts parsed["name"] # "小明"
# 格式化
puts JSON.pretty_generate(data)
# symbolize_names(Hash 键转 Symbol)
parsed = JSON.parse(json, symbolize_names: true)
puts parsed[:name] # "小明"
YAML
ruby
require "yaml"
config = {
database: {
host: "localhost",
port: 5432,
},
redis: { url: "redis://localhost:6379" },
}
# 序列化
yaml = config.to_yaml
puts yaml
# ---
# :database:
# :host: localhost
# :port: 5432
# :redis:
# :url: redis://localhost:6379
# 反序列化
loaded = YAML.load_file("config.yml")
💡 Rails 配置文件(database.yml、secrets.yml)就是 YAML 格式。