我是Perl的新手,我需要编码为JSON。这是JSON代码:
{
"fields": {
"project": {
"key": "ABC"
},
"summary": "REST TESTING",
"description": "Creating of an issue using project keys and issue type names using the REST API",
"issuetype": {
"name": "Bug"
}
}
}
任何人都可以帮我解决Perl代码吗?
答案 0 :(得分:3)
Perl JSON模块将采用复杂的Perl数据结构并将其编码为基于JSON文本的结构。
你说我是Perl 的新手。正如您可能已经发现的那样,Perl的基本数据结构仅涉及单个数据位。 标量($foo
)对单个数据进行编码。 Arrays (@foo
)和散列(%foo
)编码单个数据位列表。这些结构都不能捕获JSON(或XML或YAML或Marshal)数据结构的复杂性。
然而,Perl有一些称为引用的东西,允许你有哈希 哈希或数组 arrays < / em>或散列 数组等等。您需要了解这些复杂的结构才能对JSON结构进行编码和解码。
幸运的是,Perl在其Perldocs的引用中有一个内置教程。如果您不熟悉参考文献,请选择Tutorial。然后,您可以开始编码我们的JSON结构。
这是一个编写帖子中确切结构的程序:
use warnings;
use strict;
use feature qw(say);
use JSON;
use Data::Dumper;
my $json_data_ref = {};
$json_data_ref->{fields}->{project}->{key} = "ABC";
$json_data_ref->{fields}->{summary} = "REST TESTING";
$json_data_ref->{fields}->{description} = "Creating of an issue project keys and issue "
. "type names using the REST API";
$json_data_ref->{fields}->{issuetype}->{name} = "Bug";
$json_data_ref->{fields}->{fixedVersions}->[0]->{id} = "1223";
my $json_text = to_json ( $json_data_ref, { pretty => 1 } );
say $json_text;
输出结果为:
{
"fields" : {
"summary" : "REST TESTING",
"project" : {
"key" : "ABC"
},
"description" : "Creating of an issue project keys and issue type names using the REST API",
"issuetype" : {
"name" : "Bug"
}
"FixedVersions" : [
{ "id: "1223" }
]
}
}
答案 1 :(得分:0)
查看CPAN上的Perl JSON
module。这将处理所有编码/解码,您只需要适当地管理您的Perl结构。