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

时间:2015-01-16 16:34:25

标签: ruby arrays json

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

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

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

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

例如,我希望能够获得" Mark"通过致电object[0].name或获取"开发人员"致电object[1].description

这可能吗?我曾尝试对我的阵列使用.to_json方法,但它并没有给我提供我需要的东西。

感谢。

1 个答案:

答案 0 :(得分:3)

您可以使用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"