如何将带有JSON字符串的数组转换为JSON对象(ruby)

我有一个数组,其内容如下:

[ [0] { "name" => “Mark”, "id" => “01”, "description" => “User”, }, [1] { "name" => “John”, "id" => “02”, "description" => “Developer”, } ] 

注意:现在,Array的每个项都是一个哈希(不是字符串)。 也就是说,如果我puts myarray[0].class我得到hash作为回报。

我希望能够创建一个我可以作为object[i].field引用的object[i].field

例如,我希望能够通过调用object[0].name来获取“Mark”,或者通过调用object[1].description获取“Developer”。

这可能吗? 我试图利用.to_json方法对付我的数组,但它并不能完全满足我的需求。

谢谢。

您可以使用Struct来满足您的需求。

 array = [ { "name" => "Mark", "id" => "01", "description" => "User", }, { "name" => "John", "id" => "02", "description" => "Developer", } ] Customer = Struct.new(:name, :id, :description) array_of_customers = array.map { |hash| Customer.new(*hash.values) } array_of_customers[1].name # => "John" array_of_customers[1].description # => "Developer"