arrays - 将字符串解析为 ruby 中的哈希值
问题描述
我正在尝试将 ruby 中的字符串解析为哈希,但我无法弄清楚。我已经把它放到一个嵌套数组中,只需要将它映射到哈希。
示例字符串
subject = "{\"CN\"=\"schoen.io\", \"C\"=\"US\", \"ST\"=\"Texas\", \"L\"=\"North Doyle\", \"O\"=\"SSL Corporation\", \"OU\"=\"Information Technology Department\", \"2.5.4.17\"=\"16039-4645\", \"2.5.4.9\"=\"8268 Kemmer Village\", \"2.5.4.42\"=\"Tracy\", \"2.5.4.4\"=\"Jacobi\", \"2.5.4.5\"=\"grbh52f84senk4jkgo9n9a66yg62w78y4a0v36ax8tfacdshublxjpq6arcn7qyx\", \"2.5.29.17\"=\"ssl.com\"}}"
所需的哈希
{'CN' => 'schoen.io', 'C' => 'US', 'ST' => 'Texas',... }
我的代码
subject.gsub('{','').gsub('}','').split(',').map { |m| m.split('=')}
生成的数组
[["\"CN\"", "\"schoen.io\""], [" \"C\"", "\"US\""], [" \"ST\"", "\"Texas\""], [" \"L\"", "\"North Doyle\""], [" \"O\"", "\"SSL Corporation\""], [" \"OU\"", "\"Information Technology Department\""], [" \"2.5.4.17\"", "\"16039-4645\""], [" \"2.5.4.9\"", "\"8268 Kemmer Village\""], [" \"2.5.4.42\"", "\"Tracy\""], [" \"2.5.4.4\"", "\"Jacobi\""], [" \"2.5.4.5\"", "\"grbh52f84senk4jkgo9n9a66yg62w78y4a0v36ax8tfacdshublxjpq6arcn7qyx\""], [" \"2.5.29.17\"", "\"ssl.com\""]]
解决方案
我认为您的原始主题有错字。你的字符串末尾有两个}
,开头只有一个。
如果你删除它,你的字符串现在是:
subject = "{\"CN\"=\"schoen.io\", \"C\"=\"US\", \"ST\"=\"Texas\", \"L\"=\"North Doyle\", \"O\"=\"SSL Corporation\", \"OU\"=\"Information Technology Department\", \"2.5.4.17\"=\"16039-4645\", \"2.5.4.9\"=\"8268 Kemmer Village\", \"2.5.4.42\"=\"Tracy\", \"2.5.4.4\"=\"Jacobi\", \"2.5.4.5\"=\"grbh52f84senk4jkgo9n9a66yg62w78y4a0v36ax8tfacdshublxjpq6arcn7qyx\", \"2.5.29.17\"=\"ssl.com\"}"
你只需要这样做:
JSON.parse(subject.gsub('=',':'))
您将获得所需的输出:
{
"CN"=>"schoen.io",
"C"=>"US",
"ST"=>"Texas",
"L"=>"North Doyle",
"O"=>"SSL Corporation",
"OU"=>"Information Technology Department",
"2.5.4.17"=>"16039-4645",
"2.5.4.9"=>"8268 Kemmer Village",
"2.5.4.42"=>"Tracy",
"2.5.4.4"=>"Jacobi",
"2.5.4.5"=>"grbh52f84senk4jkgo9n9a66yg62w78y4a0v36ax8tfacdshublxjpq6arcn7qyx",
"2.5.29.17"=>"ssl.com"
}
推荐阅读
- lightgbm - 安装 lgb.train 分发的 Lightgbm 挂起
- r - 更新数据表头而不刷新整个应用程序(R,Shiny) dataTableProxy()
- javascript - React.js:组件根本不渲染或显示
- vue.js - 有没有更简单的方法来处理 vue 中的 graphql 突变?
- php - ACF 行显示最近帖子的缩略图
- c++ - 无法将 Freetype 加载的大多数字体的位图作为纹理上传到 OpenGL。但是,其他字体可以完美运行。(带有图像示例)
- bash - 使用 .sh 脚本设置环境变量在 zsh 下不起作用:如何转换函数
- asp.net - 如何解决引用库类中的依赖关系
- dynamic - bigquery 过程中的动态列名
- swift - 如何从 NSFetchRequest 获取数据而不返回数组(核心数据)