1

印刷するJSONがあります

{"d":{"success":true,"drivers":[{"FIRST_NAME":"JOHN","LAST_NAME":"SMITH"},{"FIRST_NAME":"JANE","LAST_NAME":"DOE"}]}}

名前は、データベースで見つかったものに応じて変わります。JSONで復元された結果ごとに、これをこの形式でプッシュする必要があります。

push(@$dummy_data, {'name' => 'testname', 'key' => 'somekey-1234'});
push(@$dummy_data, {'name' => 'testname2', 'key' => 'somekey-5678'});

したがって、この例では、testnameの代わりにJohn Smith、testname2の代わりにJaneになります。jsonの名前と名前が上記の形式でプッシュされるたびに、これをどのように行うのでしょうか。

4

1 に答える 1

1

この新しいゲームを試してみましょう

use strict; use warnings;
use JSON::XS;
use Data::Dumper;

# creating reference to a void ARRAY
my $dummy_data = [];

# creating $json string
my $json = '{"d":{"success":true,"drivers":[{"FIRST_NAME":"JOHN","LAST_NAME":"SMITH"},{"FIRST_NAME":"JANE","LAST_NAME":"DOE"}]}}';

# converting JSON -> Perl data structure
my $perl_hash = decode_json $json;

# feeding $dummy_data ARRAY ref with a HASH
push @$dummy_data, {
    name => $perl_hash->{d}->{drivers}->[0]->{FIRST_NAME},
    key => $perl_hash->{d}->{drivers}->[1]->{FIRST_NAME}
};

# print what we have finally
print Dumper $dummy_data;

出力

$VAR1 = [
          {
            'name' => 'JOHN',
            'key' => 'JANE'
          }
        ];
于 2013-02-20T16:32:32.953 に答える