>  기사  >  백엔드 개발  >  PHP에서 중첩된 JSON 데이터를 올바르게 구문 분석하는 방법은 무엇입니까?

PHP에서 중첩된 JSON 데이터를 올바르게 구문 분석하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-16 01:15:03708검색

How to Properly Parse Nested JSON Data in PHP?

json_decode를 사용하여 PHP에서 JSON 개체 구문 분석

JSON 형식 웹 서비스에서 날씨 데이터를 검색하려고 하면 문제가 발생할 수 있습니다. 성공하지 못하는 일반적인 PHP 요청 코드:

$url = "http://www.worldweatheronline.com/feed/weather.ashx?q=schruns,austria&format=json&num_of_days=5&key=8f2d1ea151085304102710";
$json = file_get_contents($url);
$data = json_decode($json, TRUE);
echo $data[0]->weather->weatherIconUrl[0]->value;

문제를 이해하기 위해 수신한 JSON 데이터를 살펴보겠습니다.

{
  "data": {
    "current_condition": [...],
    "request": [...],
    "weather": [
      {
        "date": "2010-10-27",
        "precipMM": "0.0",
        "tempMaxC": "3",
        "tempMaxF": "38",
        "tempMinC": "-13",
        "tempMinF": "9",
        "weatherCode": "113",
        "weatherDesc": [{ "value": "Sunny" }],
        "weatherIconUrl": [{ "value": "http://www.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0001_sunny.png" }],
        "winddir16Point": "N",
        "winddirDegree": "356",
        "winddirection": "N",
        "windspeedKmph": "5",
        "windspeedMiles": "3"
      },
      ...
    ]
  }
}

날씨 데이터가 "데이터" 객체. 따라서 JSON을 올바르게 구문 분석하려면 코드를 수정해야 합니다.

$url = 'http://www.worldweatheronline.com/feed/weather.ashx?q=schruns,austria&format=json&num_of_days=5&key=8f2d1ea151085304102710';
$content = file_get_contents($url);
$json = json_decode($content, true);

foreach ($json['data']['weather'] as $item) {
    print $item['date'];
    print ' - ';
    print $item['weatherDesc'][0]['value'];
    print ' - ';
    print '<img src="' . $item['weatherIconUrl'][0]['value'] . '" border="0" alt="" />';
    print '<br>';
}

json_decode의 두 번째 매개변수를 true로 설정하면 배열이 제공되므로 배열 인덱싱을 사용하여 데이터에 액세스할 수 있습니다. JSONview Firefox 확장은 JSON 구조를 시각화하고 구문 분석을 단순화하는 데도 도움이 될 수 있습니다.

위 내용은 PHP에서 중첩된 JSON 데이터를 올바르게 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.