首页 > 解决方案 > 使用 JSON.parse 解析 OpenStruct 或哈希

问题描述

我试图解析这样一个简单的 JSON:

JSON.parse({"pong": "ok"})

它失败了

2.4.0 :014 > JSON.parse({"pong": "ok"})
TypeError: no implicit conversion of Hash into String
    from (irb):14

这里有什么问题?为什么要转换为 String ?

再次尝试,这次使用OpenStruct :

2.4.0 :001 > pong = OpenStruct.new(pong: 'OK')
 => #<OpenStruct pong="OK"> 
2.4.0 :002 > JSON.parse(pong)
TypeError: no implicit conversion of OpenStruct into String
    from (irb):2

相同 ?谢谢

标签: jsonrubyhashmapopenstruct

解决方案


JSON.parse解析jsonjson表示String

JSON.parse('{"pong": "ok"}')
#⇒ {"pong"=>"ok"}

此外,您可以将json 字符串解析OpenStruct为:

JSON.parse('{"pong":"ok"}', object_class: OpenStruct).pong
#⇒ "ok"

推荐阅读