将存储在 perl 变量中的数据转换为 json 对象

pm1391

我正在使用票务系统和我们的 ELK 堆栈,我正在寻找一种可能的解决方案,它比我目前使用的解决方案要好得多。工单系统响应数据如下:

$VAR1 = {
          'Ticket' => [
                      {
                        'State' => 'closed successful',
                        'Type' => 'Unclassified',
                        'LockID' => '1',
                        'Changed' => '2017-06-22 10:59:21',
                        'Responsible' => 'root@localhost',
                        'ServiceID' => '',
                        'UnlockTimeout' => '1498143551',
                        'StateType' => 'closed',
                        'Title' => 'Test',
                        'StateID' => '2',
                        'Created' => '2017-06-22 10:52:10',
                        'EscalationSolutionTime' => '0',
                        'OwnerID' => '4',
                        'ResponsibleID' => '1',
                        'CreateBy' => '1',
                        'TicketNumber' => '2017062201000031',
                        'PriorityID' => '3',
                        'ArchiveFlag' => 'n',
                        'TypeID' => '1',
                        'Priority' => '3 normal',
                        'SLAID' => '',
                        'Queue' => 'Raw',
                        'QueueID' => '2',
                        'EscalationTime' => '0',
                        'EscalationUpdateTime' => '0',
                        'Owner' => 'tom',
                        'RealTillTimeNotUsed' => '0',
                        'CustomerID' => 'TestMonior',
                        'CustomerUserID' => 'c-user',
                        'ChangeBy' => '4',
                        'Age' => '10652757',
                        'Lock' => 'unlock',
                        'CreateTimeUnix' => '1498143130',
                        'EscalationResponseTime' => '0',
                        'UntilTime' => '0',
                        'TicketID' => '8',
                        'GroupID' => '1'
                      },

我目前正在做的只是用 sed 删除前几行和最后一行,替换=>with 的所有实例:并用双引号替换单引号。然后我将数据直接发布到 ElasticSearch 通过

/ticketsystem/ticketid/1 -d @test.json

这工作正常,但我无法想出更好的方法,因为我希望能够从我们的票务系统批量导出票证,而不仅仅是一次一张票。如果我批量导出,我没有办法增加上面的 typeID。

我最初的想法是把它变成一个 javascript 数组..想法?

先感谢您

您可能想要使用JSON 模块

my $json = JSON->new()->encode($variable);

查看文档以获取更多选项。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章