Преобразование благословенных объектов в JSON

Как мне преобразовать благословенный объект в JSON в Perl? Вот массив, который у меня есть:

@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)', но ни настройки allow_blessed и convert_blessed в строке 256 u.pl не включены.

Я ожидал сериализованный объект JSON, чтобы я мог отправить его на сервер.

Как мне это сделать?

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 достаточно и детей и родителей... удачи попробуют то же самое...

Другие вопросы по тегам