2

如何在 Perl 中将祝福对象转换为 JSON?以下是我拥有的数组:

@x = ({
          'notificationtype' => 'TRAP',
          'receivedfrom' => 'UDP: [10.127.34.212]:48909->[10.127.34.182]:162',
          'version' => 1,
        },
        [
          [
            bless( {
                     'oidptr' => bless( do{\(my $o = '140059234062224)}, ''netsnmp_oidPtr' )
                   }, 'NetSNMP::OID' ),
            '600',
            67
          ],
          [
            bless( {
                     'oidptr' => bless( do{\(my $o = '140059236784112)}, ''netsnmp_oidPtr' )
                   }, 'NetSNMP::OID' ),
            'OID: .iso.org.dod.internet.private.enterprises.14296.1.100.0.0.1',
            6
          ]
]);

我可以$VAR1单独使用进行转换encode_json \@x,但是当我使用受祝福的对象时,它不起作用。我收到错误消息:

遇到对象“NetSNMP::OID=HASH(0x136b278)”,但在 u.pl 第 256 行未启用 allow_blessed 和 convert_blessed 设置。

我期望一个序列化的 JSON 对象,以便我可以将它发送到服务器。

我该怎么做?

4

1 回答 1

0

这取决于,你想保留视觉效果吗?还是数据和层次结构?无法以其他终端尺寸呈现相同的位置。我会只保留数据和层次结构。可能我会忽略焦点和事件。我会开始 umarating 像下面这样的属性,然后创建一个工厂 这些是我为 Box 找到的那些

container.options
container.position, 
container.getLines()
container.getText()
container.getContent
container.children
container.parent
container.style
container.type
container.visible
container.height
container.hidden
container.index

子类有行、数据、行等等……我不认为有一种机械的方法……

如果要重新创建层次结构,还需要迭代子级和父级,可能是整个树。

想一想也许只用 this.options 就足够了,孩子和父母......祝你好运会尝试同样的......

于 2019-04-11T15:06:13.960 回答