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

时间:2017-10-23 22:16:40

标签: json perl elasticsearch

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

List<Anime>

我目前正在做的只是删除前几行和sed的最后一行,用$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' }, 替换=>的所有实例,并用双引号替换单引号。然后我通过

将数据直接发布到ElasticSearch
:

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

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

提前谢谢

1 个答案:

答案 0 :(得分:1)

您可能想要使用JSON module

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

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