私はPerlの初心者であり、このJSONデータをループして、画面に出力したいと思っています。
どうやってやるの?
$arr = '[{"Year":"2012","Quarter":"Q3","DataType":"Other 3","Environment":"STEVE","Amount":125},{"Year":"2012","Quarter":"Q4","DataType":"Other 2","Environment":"MIKE","Amount":500}]';
JSONまたはJSON::XSを使用して、JSONをPerl構造にデコードします。
簡単な例:
use strict;
use warnings;
use JSON::XS;
my $json = '[{"Year":"2012","Quarter":"Q3","DataType":"Other 3","Environment":"STEVE","Amount":125},{"Year":"2012","Quarter":"Q4","DataType":"Other 2","Environment":"MIKE","Amount":500}]';
my $arrayref = decode_json $json;
foreach my $item( @$arrayref ) {
# fields are in $item->{Year}, $item->{Quarter}, etc.
}
ハッシュの配列があります。
use JSON::XS qw( decode_json );
my $records = decode_json($json_text);
for my $record (@$records) {
for my $key (keys(%$record)) {
my $val = $record->{$key};
say "$key: $val";
}
}
これがCPANのパッケージで、 JSON.pmというトリックを実行する必要があります。
解析すると、他のPerl参照と同じように扱うことができます。
例
$perl_scalar = $json->decode($json_text)
ドキュメンテーション
エンコードの反対:JSONテキストを期待して解析を試み、結果の単純なスカラーまたは参照を返します。エラー時の鳴き声。
JSONの数値と文字列は単純なPerlスカラーになります。JSON配列はPerlarrayrefsになり、JSONオブジェクトはPerlhashrefsになります。trueは1(JSON :: true)になり、falseは0(JSON :: false)になり、nullはundefになります。`
同様のスタックオーバーフローの質問: JSONでエンコードされた配列の解析