繁体   English   中英

我如何指定ActiveSupport :: JSON.encode如何处理嵌套的哈希整数键

[英]Ho do I specify how ActiveSupport::JSON.encode handles nested hash integer keys

我不确定这是否是错误,或者是否缺少指定使用rails ActiveSupport::JSON.encode转换为JSON时如何处理嵌套哈希的整数键的ActiveSupport::JSON.encode 问题的例子

$ rails console
[deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.
Loading development environment (Rails 3.2.22.1)

Frame number: 0/5
[1] pry(main)> ActiveSupport::JSON.encode({outer: {1 => "a"}})
=> "{\"outer\":{\"1\":\"a\"}}"

如您所见,内部哈希键1已转换为字符串。 我知道有各种选项可以指定如何处理未知的类/类型和ActiveRecord特定的事物(例如允许与:include联接),但是我会认为整数作为“本机”类型不需要这种事情,并且该嵌套将默认处理。

在JSON中,“键”必须始终为string

=> a = { 1 => "1" }
#> {1=>"1"}
=> a.to_json
#> "{\"1\":\"1\"}"
=> JSON.parse(a.to_json)
#> {"1"=>"1"}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM