将“复杂”的JSON数据转换为哈希表

3

我是使用Ruby on Rails 3,我正在尝试转换以下JSON数据

"{\"errors\":{\"base\":\"Invalid field.\"}}"

转换成这样可以通过哈希访问:

@internal_test1[:errors][:base]
# => "Invalid field"

如何做到这一点?
更新
@internal_test1 = "{\"errors\":{\"base\":\"Invalid email/password combination.\"}}"
test = ActiveSupport::JSON.decode(@internal_test1)
@internal_test2 = test["errors"]

调试是

@internal_test1
--- "{\"errors\":{\"base\":\"Invalid email/password combination.\"}}"

@internal_test2
--- 
base: Invalid email/password combination.
1个回答

9
> @internal_test1 = ActiveSupport::JSON.decode "{\"errors\":{\"base\":\"Invalid field.\"}}"
 => {"errors"=>{"base"=>"Invalid field."}} 
> @internal_test1["errors"]
 => {"base"=>"Invalid field."} 

抱歉,也许我错了。我想要在 '[base]' 层面上进行访问。也就是说,我需要将它转换为一个完整的哈希。 - user502052
你试过了吗?这是一个哈希表。在那里可以使用 @internal_test1["errors"]["base"] - jdl
1
你是在尝试使用符号或字符串作为键吗?JSON.decode会将它们转换为字符串作为键。请在控制台中输出一些内容,让我们看看出了什么问题。 - jdl
我必须使用'@internal_test1["errors"]["base"]'而不是'@internal_test1[:errors][:base]!!!' - user502052

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接