欢迎来到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" }
如果我完全误解了你的问题,请澄清。
你的数组已经是一个散列或你的代码中缺少的东西 – lkuty
我认为缺少一些东西。我没有看到数组。 –
@Ray - 实际的xmlrpc响应是“[{”id“=>”xxx“,”name“=>”show all“,”parent_id“=>”yyy“,”tsuite_name“=>”show system“, “tc_external_id”=>“zzz”}]“ – Anand