0

私は古いperlスクリプトを編集しようとしていますが、完全な初心者です。サーバーからのリクエストは次のように返されます。

$VAR1 = [
          {
            'keywords' => [
                            'bare knuckle boxing',
                            'support group',
                            'dual identity',
                            'nihilism',
                            'support',
                            'rage and hate',
                            'insomnia',
                            'boxing',
                            'underground fighting'
                          ],
          }
        ];

このJSON文字列を解析して取得するにはどうすればよいですか?

$keywords = "bare knuckle boxing,support group,dual identity,nihilism,support,rage and hate,insomnia,boxing,underground fighting"

完全なperlコード

#!/usr/bin/perl

use LWP::Simple;                # From CPAN
use JSON qw( decode_json );     # From CPAN
use Data::Dumper;               # Perl core module
use strict;                     # Good practice
use warnings;                   # Good practice
use WWW::TheMovieDB::Search;
use utf8::all;
use Encode;
use JSON::Parse 'json_to_perl';
use JSON::Any;
use JSON;

my $api = new WWW::TheMovieDB::Search('APIKEY');
my $img = $api->type('json');
$img = $api->Movie_imdbLookup('tt0137523');

my $decoded_json = decode_json( encode("utf8", $img) );

print Dumper $decoded_json;

ありがとう。

4

3 に答える 3

1

コメントと最近の編集に基づいて、あなたが求めているのは、変数に含まれているperlデータ構造をナビゲートする方法です$decoded_json

my $keywords = join ",", @{ $decoded_json->[0]{'keywords'} };
于 2013-02-26T14:08:14.007 に答える
0
say qq{ @{ $arrayref->[0]->{'keywords'} } };

TLPが指摘したように、あなたが示したのはperl配列/ハッシュの組み合わせだけです。ただし、JSON文字列がある場合は、 JSON.pmのドキュメントを参照する必要があります。

于 2013-02-26T13:37:44.033 に答える
0

提示する結果はjsonに似ていますが、Perlバリアントです。(つまり、:などの代わりに=>)。すでにデータを取得しているので、jsonの部分を調べる必要はないと思います。データをテキスト文字列に結合するには、Perlを使用する必要があります。

vol7ronのソリューションについて詳しく説明します。

#get a reference to the list of keywords
my $keywords_list = $decoded_json->[0]{'keywords'};
#merge this list with commas
my $keywords = join(',', @$keywords_list );
print $keywords;
于 2013-02-26T14:02:50.193 に答える