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

如何将Ruby中的Hash对象转换为无转义符的字符串格式Hash?

原因说明

你看到的输出里的\转义符是p方法的输出特性导致的:p方法会调用对象的inspect实现,为了标识字符串边界,会自动对字符串内部的双引号添加转义符,实际hash.to_s返回的String对象本身并不携带这些多余的转义符。

验证与实现方法

  1. 直接查看无转义的字符串内容,把p替换为puts即可:
hash = {"make" => "tata", "year" => "2006"}
# 输出无转义的Hash字符串
puts hash.to_s
# 输出结果:{"make"=>"tata", "year"=>"2006"}
# 验证返回值类型为String
puts hash.to_s.class
# 输出结果:String
  1. 如果需要和你给出的预期格式完全一致,外层额外包裹双引号,可以按以下方式实现:
hash = {"make" => "tata", "year" => "2006"}
result = "\"#{hash.to_s}\""
puts result
# 输出结果:"{"make"=>"tata", "year"=>"2006"}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:54:03