-2

JSONオブジェクトをナビゲートする方法を理解するのに本当に苦労しています。私はJSON.pmを使用しており、各「name」パラメーターにアクセスしてその「values」配列の最初のインデックスを格納しようとして、机の上で頭を殴っています。

基本的な構造、配列/ハッシュ参照がどのように機能するか、そして必要な値にアクセスするためにそれらを反復処理する方法を理解するのに苦労しています。誰かが私を正しい方向に向けるのを手伝ってくれるなら...私はこの時点でかなり迷っています/混乱しています。

これは私が使用しているサンプルデータです(Facebookのオープングラフオブジェクト)。

{
  "data": [
    {
      "id": "219127134886593/insights/page_impressions/week",
      "name": "page_impressions",
      "period": "week",
      "values": [
        {
          "value": 31600,
          "end_time": "2013-03-07T08:00:00+0000"
        },
        {
          "value": 31979,
          "end_time": "2013-03-08T08:00:00+0000"
        },
        {
          "value": 29517,
          "end_time": "2013-03-09T08:00:00+0000"
        }
      ],
      "title": "Weekly Total Impressions",
      "description": "Weekly The number of impressions seen of any content associated with your Page. (Total Count)"
    },
    {
      "id": "219127134886593/insights/page_impressions_organic/week",
      "name": "page_impressions_organic",
      "period": "week",
      "values": [
        {
          "value": 23587,
          "end_time": "2013-03-07T08:00:00+0000"
        },
        {
          "value": 23858,
          "end_time": "2013-03-08T08:00:00+0000"
        },
        {
          "value": 22813,
          "end_time": "2013-03-09T08:00:00+0000"
        }
      ],
      "title": "Weekly Organic impressions",
      "description": "Weekly The number of times your posts were seen in News Feed or ticker or on visits to your Page. These impressions can be by people who have liked your Page and people who haven't. (Total Count)"
    },
  ],
  "paging": {
    "previous": "https://graph.facebook.com/219127134886593/insights/page_impressions,page_impressions_organic,page_impressions_viral,page_storytellers/week?since=1362383320&until=1362642520",
    "next": "https://graph.facebook.com/219127134886593/insights/page_impressions,page_impressions_organic,page_impressions_viral,page_storytellers/week?since=1362901720&until=1363160920"
  }
}

そして、これは私がさまざまな要素にアクセスするために取り組んでいるものです:

foreach my $data ( $decoded_json->{data} ) {
            foreach my $item ( @$data ) {
                $list{ $item->{'name'} } = $item->{'values'};
                print "Value 3: @($item->{'values'})[3]\n";
            }
        }
4

2 に答える 2

1
for my $item (@{ $decoded_json->{data} }) {
    $list{ $item->{'name'} } = $item->{'values'};
    print "Value 4: $item->{'values'}[3]\n";
}

参照の詳細については、 http://p3rl.org/REFを参照してください。

于 2013-03-12T10:07:27.983 に答える
0

成功!

foreach my $data ( $decoded_json->{data} ) {
    foreach my $item ( @$data ) {
        $list{ $item->{'name'} } = ${ $item->{'values'} }[1]->{'value'};
        print "Name: $item->{'name'}\n";
        print "Value 3: ${ $item->{'values'} }[1]->{'value'}\n";
    }
}

ありがとう: disparationdesign.com thegeekstuff.com

人々に感謝します、要約:

foreach my $item ( @{ $decoded_json->{data} } ) {
    $list{ $item->{'name'} } = $item->{'values'}->[1]->{'value'};
    print "Name: $item->{'name'}\n";
    print "Value 3: $item->{'values'}->[1]->{'value'}\n";
}
于 2013-03-12T10:08:38.453 に答える