首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将输出打印为JSON格式

问将输出打印为JSON格式
EN

Stack Overflow用户
提问于 2014-04-10 17:29:10
回答 1查看 293关注 0票数 1

我有一个很长的输出包含一个项目列表,我想知道如何以JASON格式打印它。

代码语言:javascript
复制
DLQ_CPP_LTEST
PCA
LTEST_H
ActiveMQ.DLQ
LTEST
DLQ_CPP_NMP_STUDY

期望输出

代码语言:javascript
复制
{
 "data":[
  { "{#AMQQ}":"DLQ_CPP_LTEST" },
  { "{#AMQQ}":"PCA" },
  { "{#AMQQ}":"LTEST_H" },
  { "{#AMQQ}":"ActiveMQ.DLQ" }
]

}

我尝试过修改我的perl脚本,但无法正确显示输出。

代码语言:javascript
复制
#!/usr/bin/perl
use strict;
use warnings;

# Options
my $_proc = "/root/query.txt";

# Validate options
 if ( ! -e $_proc)
{
    die "File $_proc not found!";
}

# Keep count
my $_first = 1;

# Present the data in JSON format
print "{\n";
print "\t\"data\":[\n\n";

# Fetch the data and put it in an array
my @_data = `cat $_proc | awk '{ print \$1 }'`;
chomp @_data;

# Read the array and print the wanted data
 foreach my $_disk (@_data)
{
    # Print the data in JSON
    print "\t,\n" if not $_first;
    $_first = 0;

    print "\t{\n";
    print "\t\t\"{#AMQQ}\":\"$_disk\"\n";
    print "\n\t}\n";
}

print "\n\t]\n";
print "}\n";

谢谢你的帮忙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-10 17:37:44

构建您的数据结构,然后只使用JSON模块:

代码语言:javascript
复制
use strict;
use warnings;

use JSON;

my %hash = (data => [map {chomp; {"{AMQQ}" => $_}} <DATA>]);

print to_json(\%hash);

__DATA__
DLQ_CPP_LTEST
PCA
LTEST_H
ActiveMQ.DLQ
LTEST
DLQ_CPP_NMP_STUDY

产出:

代码语言:javascript
复制
{"data":[{"{AMQQ}":"DLQ_CPP_LTEST"},{"{AMQQ}":"PCA"},{"{AMQQ}":"LTEST_H"},{"{AMQQ}":"ActiveMQ.DLQ"},{"{AMQQ}":"LTEST"},{"{AMQQ}":"DLQ_CPP_NMP_STUDY"}]}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22994978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档