2

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 コードを手伝ってくれる人はいますか?

4

2 に答える 2

3

Perl JSONモジュールは、複雑な Perl データ構造を受け取り、JSON テキストベースの構造にエンコードします。

あなたは私が Perl の初心者だと言いました。お気づきかもしれませんが、Perl の基本的なデータ構造は、データの個々のビットのみを参照します。スカラー( $foo) は、単一のデータをエンコードします。配列( @foo) とハッシュ ( %foo) は、単一ビットのデータのリストをエンコードします。これらの構造はいずれも、JSON (または XML、YAML、Marshal) データ構造の複雑さを捉えることができません。

ただし、Perl には参照と呼ばれるものがあり、ハッシュハッシュ配列配列配列ハッシュなどを使用できます。JSON 構造をエンコードおよびデコードできるようにするには、これらの複雑な構造を理解する必要があります。

幸いなことに、Perl には、Perldocs のリファレンスに組み込まれたチュートリアルがあります。リファレンスに慣れていない場合は、チュートリアルを受講してください。次に、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" }
       ]
   }
}
于 2013-06-27T12:28:46.070 に答える
0

CPANのPerlJSONモジュールを調べてください。これにより、すべてのエンコード/デコードが処理され、Perl 構造を適切に管理するだけで済みます。

于 2013-06-27T11:24:44.610 に答える