祝福对象转换为JSON

时间:2017-04-27 09:53:37

标签: json perl blessed

如何在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对象,以便我可以将它发送到服务器。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

这取决于您是否要保留视觉效果?还是数据和层次结构?在其他终端尺寸下无法渲染相同的位置。我只保留数据和层次结构。可能我会忽略焦点和事件。我将开始对以下属性进行编码,然后创建一个工厂。这些是我为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进行思考就足够了,孩子和父母..祝你好运会尝试相同的方法...