2

私は電報からのJSONを持っています.PHPでは、それがテキストの場合は何かを見つけることができますが、写真、音声、または...何か他のことを行う場合はどうすればよいでしょうか. この部分は日付の後にありますが、どうすればアクセスできますか?

インデックスのようにアクセスしてみました['message'][1]が、エラーになりました。

{
  "ok": true,
  "result": [
    {
      "update_id": 30213598,
      "message": {
        "message_id": 41,
        "from": {
          "id": 102768333,
          "first_name": "QWr_1",
          "username": "john"
        },
        "chat": {
          "id": 108768733,
          "first_name": "QWr_1",
          "username": "john"
        },
        "date": 1439233778,
        "text": "this is a test"
      }
    },
        {
      "update_id": 30213599,
      "message": {
        "message_id": 46,
        "from": {
          "id": 108768733,
          "first_name": "QWr_1",
          "username": "john"
        },
        "chat": {
          "id": 108768733,
          "first_name": "QWr_1",
          "username": "john"
        },
        "date": 1439234126,
        "photo": [
          {
            "file_id": "AgADBAAD4acxG92tewa8uRLrpBBo-h1icjAABCohC6S9uPdhViIAAgI",
            "file_size": 1923,
            "width": 90,
            "height": 90
          },
          {
            "file_id": "AgADBAAD4acxG92tewa8uRLrpBBo-h1icjAABOT4Q5CJoFOVVSIAAgI",
            "file_size": 24105,
            "width": 320,
            "height": 320
          },
          {
            "file_id": "AgADBAAD4acxG92tewa8uRLrpBBo-h1icjAABK2WgDnJ74jlVCIAAgI",
            "file_size": 57650,
            "width": 640,
            "height": 640
          }
        ]
      }
    },
4

1 に答える 1

3

関数を使用する必要がありjson_decodeます。

foreach次に loopを使用して、次の例echo $item['message']['message_id']を表示message_idします。

例を試す

$json = <<<JSON
{
  "ok": true,
  "result": [
    {
      "update_id": 30213598,
      "message": {
        "message_id": 41,
        "from": {
          "id": 102768333,
          "first_name": "QWr_1",
          "username": "john"
        },
        "chat": {
          "id": 108768733,
          "first_name": "QWr_1",
          "username": "john"
        },
        "date": 1439233778,
        "text": "this is a test"
      }
    },
        {
      "update_id": 30213599,
      "message": {
        "message_id": 46,
        "from": {
          "id": 108768733,
          "first_name": "QWr_1",
          "username": "john"
        },
        "chat": {
          "id": 108768733,
          "first_name": "QWr_1",
          "username": "john"
        },
        "date": 1439234126,
        "photo": [
          {
            "file_id": "AgADBAAD4acxG92tewa8uRLrpBBo-h1icjAABCohC6S9uPdhViIAAgI",
            "file_size": 1923,
            "width": 90,
            "height": 90
          },
          {
            "file_id": "AgADBAAD4acxG92tewa8uRLrpBBo-h1icjAABOT4Q5CJoFOVVSIAAgI",
            "file_size": 24105,
            "width": 320,
            "height": 320
          },
          {
            "file_id": "AgADBAAD4acxG92tewa8uRLrpBBo-h1icjAABK2WgDnJ74jlVCIAAgI",
            "file_size": 57650,
            "width": 640,
            "height": 640
          }
        ]
      }
    }
]
}
JSON;

$json_data = json_decode($json, true);

foreach($json_data['result'] as $item)
{
    if(isset($item['message']['text']))
    {
        echo $item['message']['text']."<br />";
    }

    if(isset($item['message']['photo']))
    {
        foreach($item['message']['photo'] as $photo)
        {
            echo "file_id: ".$photo['file_id']."<br />";
            echo "file_size: ".$photo['file_size']."<br />";
        }
    }
}
于 2015-08-11T06:32:11.423 に答える