Perl JSON模塊將採用複雜的Perl數據結構並將其編碼爲基於JSON的基於文本的結構。
你說我是新來的Perl。正如您可能已經發現的那樣,Perl的基本數據結構只涉及單個數據位。 A 標量($foo
)編碼單個數據片段。 數組(@foo
)和散列(%foo
)編碼單個數據位的列表。這些結構都不能捕獲JSON(或XML或YAML或Marshal)數據結構的複雜性。
然而,Perl有一些所謂的參考,讓你擁有的東西,如哈希散列或陣列陣列或哈希陣列等的您需要了解這些複雜的結構,以便能夠編碼和解碼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" }
]
}
}
請提供更多的細節。你有什麼問題與Perl代碼? – Barmar
應該被編碼爲JSON的perl結構 –
你有什麼問題?它應該是數組和散列,在所有Perl腳本中都是通用的。 – Barmar