使用JSON.parse来解析OpenStruct或哈希

时间:2018-05-31 15:15:12

标签: json ruby hashmap 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

一样吗? 谢谢

1 个答案:

答案 0 :(得分:3)

JSON.parse解析jsonjson表示String

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

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

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