我是ruby的新手并且在最近几天开始使用它,所以如果我问的是非常基本的话,我很抱歉。
我正在寻找一种方法将以下数组转换为哈希值。
arr =>
{"id"=>"xxx", "name"=>"show all", "parent_id"=>"yyy", "tsuite_name"=>"show system", "tc_external_id"=>"zzz"}
其中arr.length为1。
我尝试解决它但无法将其转换为哈希值。
我需要这个,因为Testlink xmlrpc以上面显示的格式做出响应。
对此的任何帮助都会有很大的帮助。
感谢。
答案 0 :(得分:5)
欢迎使用Ruby!
以下构造是一个哈希。
{"id"=>"xxx", "name"=>"show all", "parent_id"=>"yyy", "tsuite_name"=>"show system", "tc_external_id"=>"zzz"}
如果它是一个数组,它将被大括号包围:
[{"id"=>"xxx", "name"=>"show all", "parent_id"=>"yyy", "tsuite_name"=>"show system", "tc_external_id"=>"zzz"}]
但我认为你得到的是:
{ "arr" => {"id"=>"xxx", "name"=>"show all", "parent_id"=>"yyy", "tsuite_name"=>"show system", "tc_external_id"=>"zzz"} }
上面的对象是哈希中的哈希。 length
方法报告为1,因为哈希只包含一个密钥,即arr
。
您可以使用class
方法测试变量的类:
$ irb
>> var = { "arr" => {"id"=>"xxx", "name"=>"show all" } }
=> { "arr" => {"id"=>"xxx", "name"=>"show all" } }
>> var.class
=> Hash
如果你需要的只是内部哈希值,那就抓住它:
>> keep = var["arr"]
=> {"id"=>"xxx", "name"=>"show all" }
如果我完全误解了你的问题,请澄清。