如何将带有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"