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

如何将Hash结构的值转换为数组以适配Elasticsearch结果解析格式?

实现方案

方法1:使用Ruby内置的transform_values(推荐,Ruby 2.4及以上版本支持)

直接一行代码即可完成转换:

result = hash.transform_values { |value| [value] }

方法2:兼容旧版本Ruby的实现

如果使用的Ruby版本低于2.4,可以用each_with_object遍历生成新Hash:

result = hash.each_with_object({}) do |(key, original_value), output_hash|
  output_hash[key] = [original_value]
end

效果验证

拿你提供的示例Hash运行上述代码后,输出的result结构如下,完全符合预期:

{
  "ABC" => [
    {
      "attributes" => {
        "id" => "1",
        "from" => "test",
        "to" => "something"
      }
    }
  ],
  "XYZ" => [
    {
      "attributes" => {
        "id" => "1",
        "from" => "value",
        "to" => "another value"
      }
    }
  ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:18:04