在水晶语言中, JSON::Any和JSON::Type有什么区别?这种类型的用例是什么?
JSON::Any是一个 struct,它作为解析结果返回。它有方便的方法来访问底层数据as_s,等等as_bool:as_f
obj = JSON.parse %({"access": true})
p obj.class # => JSON::Any
p obj["access"] # => true
p obj["access"].class # => JSON::Any
Run Code Online (Sandbox Code Playgroud)
JSON::Type是所有可能的 json 类型的联合类型。它由JSON::Anystruct 内部使用来表示数据:
p obj.raw # => {"access" => true}
p obj.raw.class # => Hash(String, JSON::Type)
Run Code Online (Sandbox Code Playgroud)