将字符串存储在JSON :: Any变量中不起作用

时间:2018-09-12 00:10:16

标签: crystal-lang

我最近又回到了crystal,我注意到在0.25.0中有关JSON行为的一些重大更改。

以前,当我有一个JSON::Type类型的变量时,我可以简单地在其中存储一个字符串

a : JSON::Type
a = "some string"

更改变量to JSON::Any后将不再可能,从而导致错误:type must be JSON::Any, not String

但是,在字符串上调用.to_jsonas(JSON::Any)也不起作用,因为返回的值也属于类String

puts typeof("Hello".to_json) => String
puts typeof("Hello".as(JSON::Any)) => String

这是预期的行为吗?现在如何在json中存储字符串?

在本地,对于JSON.parse("some string"),我也得到了JSON::ParseException,但它可以在线使用... https://play.crystal-lang.org/#/r/4y49

1 个答案:

答案 0 :(得分:2)

现在正确的用法是JSON::Any.new("some string")