gpt4 book ai didi

Ruby 哈希键作为符号不起作用

转载 作者:数据小太阳 更新时间:2023-10-29 07:21:12 26 4
gpt4 key购买 nike

我很困惑为什么 key 的符号版本在以下示例中不起作用。如前所述,我使用的是 Ruby 1.9.3。这是一个更大的应用程序的一部分,但已经能够将其缩小到这个问题。

提前致谢!

1.9.3-p194 :002 > json_sample = "{\"this\":\"notworking\"}"
=> "{\"this\":\"notworking\"}"
1.9.3-p194 :003 > test_hash = JSON.parse json_sample
=> {"this"=>"notworking"}
1.9.3-p194 :004 > test_hash["this"]
=>“不工作”
1.9.3-p194 :005 > test_hash[:this]
=> 无

最佳答案

JSON 作为 JavaScript 的一个子集,没有符号的概念。所有键都是字符串——因此,当您使用 Ruby 解析 JSON 时,将使用字符串作为键创建散列。

如果您习惯于使用 Ruby on Rails,您可能习惯于使用 HashWithIndifferentAccesses,它允许您使用字符串 符号作为您的键。


[更新] 正如 akuhn 在评论中提到的,您可以通过将 symbolize_names: true 传递给 JSON.parse 的选项来强制 JSON 模块对所有键进行符号化>:

JSON.parse(json_string, symbolize_names: true)

这将使键成为符号,这意味着在访问哈希时不能使用字符串作为键。

关于Ruby 哈希键作为符号不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13734126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com