将嵌套的 OpenStruct 转换为 JSON



使用JSON.parse创建嵌套的OpenStruct对象似乎很容易:

JSON.parse( '{"a":{"b":0}}', object_class:OpenStruct )
#<OpenStruct a=#<OpenStruct b=0>>

有没有更简单的方法可以将其转换回json,而无需创建递归函数(如此处所示:Deep Convert OpenStruct to JSON(?

在结构体上调用 OpenStruct#to_json 应该可以做到:

[2] pry(main)> JSON.parse('{"a":{"b":0}}', object_class:OpenStruct).to_json
=> "{"a":{"b":0}}"

从普通的 irb OpenStruct#to_json不起作用:

irb(main):003:0> require 'ostruct'
=> true
irb(main):004:0> require 'json'
=> true
irb(main):005:0> JSON.parse('{"a":{"b":0}}', object_class:OpenStruct).to_json
=> ""#<OpenStruct a=#<OpenStruct b=0>>""

红宝石 2.5.3, 导轨 4.2.11.1

相关内容

  • 没有找到相关文章

最新更新