Json (/ hash) к объекту ruby? - PullRequest
3 голосов
/ 29 августа 2010

В Javascript вы можете получить доступ к json как к объектам.

person = {
  name: {
    first: "Peter",
    last: "Parker"
  }
}

person.name.first

В ruby ​​я должен использовать его так:

person[:name][:first]

Возможно ли получить доступ к json (и хэшу)как объект, как в javascript?

Ответы [ 4 ]

4 голосов
/ 29 августа 2010

Вы должны проверить драгоценный камень Hashie. Это позволяет вам делать то, что вы ищете. Он имеет класс Mash, который принимает проанализированные хеши JSON и XML и предоставляет вам объектный доступ. Он на самом деле делает глубокие погружения в хеш, конвертирует любые массивы или хэши внутри хеша и т. Д.

http://github.com/intridea/hashie

1 голос
/ 29 августа 2010

В рубине есть драгоценный камень JSON.Возможно, это поможет.

http://flori.github.com/json/

0 голосов
/ 01 ноября 2011

Rails имеет встроенную поддержку для кодирования хэшей в виде JSON и декодирования JSON в хеш через ActiveSupport :: JSON. Использование встроенной поддержки избавляет от необходимости устанавливать гем.

For example:
hash = ActiveSupport::JSON.decode("{ \"color\" : \"green\" }") 
  => {"color"=>"green"} 
hash["color"]
  => "green"

Для получения дополнительной информации см .: http://www.simonecarletti.com/blog/2010/04/inside-ruby-on-rails-serializing-ruby-objects-with-json/

0 голосов
/ 29 августа 2010

JavaScript использует атрибуты объекта в качестве реализации ассоциативных массивов. Таким образом, использование хеш-типа в Ruby в основном делает то же самое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...