【问题标题】:Transforming JSON to nested ruby hash将 JSON 转换为嵌套的 ruby​​ 哈希
【发布时间】:2013-11-13 00:16:30
【问题描述】:

我有一个 JSON 块,我想将其转换为 ruby​​ 哈希。

json_blob = {"WHATEVER"=>{"FOO"=>"BAR", "CAT"=>"DAY}}

这样当我使用数据时,我可以检查数据是否存在。示例:

hashed_json_blob[:whatever][:foo] 返回"bar"

而且,我也可以处理不存在的值(它们在 json_blob 中被省略)。

hashed_json_blob[:whatever][:nonexistant] 返回nil

注意:如果有更简单的方法将数据作为 XML,那可以工作。 json_blob 是使用 JSON.parse 拉取的

【问题讨论】:

  • Amit 似乎没有回答您的问题,因为您已经提到了 JSON.parse。你能多解释一下你想要达到的目标吗?

标签: ruby-on-rails ruby xml json


【解决方案1】:

gem install json

require 'json'

json_blob = {"WHATEVER"=>{"FOO"=>"BAR", "CAT"=>"DAY}}

abc = JSON.parse(json_blob)

现在您可以对abc 执行操作

【讨论】:

  • 这就是我将 XML 转换为 JSON 格式的方式。据我所知,我认为只是 JSON.parse 返回了 JSON
  • 你的字符串应该是正确的json格式,然后使用JSON.parse你可以使用它作为hashed_json_blob[:whatever][:foo]
【解决方案2】:

您的 json_blob 对象已经是一个哈希(减去“DAY”末尾缺少的一个引号):

json_blob = {"WHATEVER"=>{"FOO"=>"BAR", "CAT"=>"DAY"}}

你可以这样做:

json_blob["WHATEVER"]
=> {"FOO"=>"BAR", "CAT"=>"DAY"}

json_blob["WHATEVER"]["FOO"]
=> "BAR"

与 json 对象相同的数据如下所示:

{"WHATEVER":{"FOO":"BAR","CAT":"DAY"}}

【讨论】:

  • 谢谢。我只是不这么想,这几乎解决了我的问题。
猜你喜欢
  • 1970-01-01
  • 2016-09-14
  • 2015-08-12
  • 1970-01-01
  • 2020-12-22
  • 1970-01-01
  • 1970-01-01
  • 2016-10-31
  • 2020-01-30
相关资源
最近更新 更多