ruby - 是否可以将 JSON 字符串转换为对象?

标签 ruby json

<分区>

Possible Duplicate:
Parsing a JSON string in ruby

是否可以将 JSON 字符串转换为 Ruby 对象?我想使用类似于以下的表达式来访问它的信息:

drawer.stations.tv.header

JSON 字符串:

{
  "drawer" : {
    "stations" : {
      "tv" : {
        "header" : "TV Channels",
        "logos" : {
          "one" : "www1",
          "two" : "www2",
          "three" : "www3"
        }
      }
    }
  }
}

最佳答案

您可以将字符串解析为 ruby​​ 哈希,然后将其转换为 Mash . Mash 为您提供类似方法的访问。

require 'json'
require 'hashie'

hash = JSON.parse json_string
obj = Hashie::Mash.new hash
obj.drawer.stations.tv.header # => "TV Channels"

更新

您也可以在没有第 3 方 gem 的情况下使用 ruby​​ 自己的 OpenStruct:

require 'ostruct'
require 'json'

obj = JSON.parse(json_string, object_class: OpenStruct)
obj.drawer.stations.tv.header # => "TV Channels"

关于ruby - 是否可以将 JSON 字符串转换为对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13897846/

相关文章:

ruby-on-rails - rails 5 : redirect wildcards except mentioned ones in routes

c# - 从 C# Windows 窗体调用 PHP Web 服务

java - 似乎 <br 正在进入我的 JSON 响应

PHP通知: Trying to get property of non-object (JSON)

c# - json.net 与 DataContractJsonSerializer

ruby - 在 Ruby 中迭代大量数字的更快方法是什么?

ruby-on-rails - 如何使用驼峰键名称从 Rails 返回 JSON

ruby-on-rails - 我无法在 Windows 7 上安装 ruby​​-debug-base19 -v '0.11.25

ruby-on-rails - 在 Rails 3.2.1 中构造 link_to

json - 无法读取未定义的 Angular2 的属性 'getKey'