>  기사  >  백엔드 개발  >  PHP에서 json 배열을 얻는 방법

PHP에서 json 배열을 얻는 방법

PHPz
PHPz원래의
2023-04-25 09:05:131008검색

인터넷이 지속적으로 발전함에 따라 웹 애플리케이션에서 JSON(JavaScript Object Notation) 형식을 사용하여 데이터를 전송하는 경우가 점점 더 늘어나고 있습니다. PHP는 JSON 데이터를 쉽게 처리할 수 있어 많은 웹 개발자가 선택하는 언어입니다.

JSON 데이터를 가져와 배열로 변환하는 것은 PHP에서 매우 일반적인 작업입니다. 이 기사에서는 다음 측면을 포함하여 PHP를 사용하여 JSON 배열을 얻는 방법을 소개합니다.

  1. json_decode() 함수를 사용하여 JSON 문자열을 PHP 배열로 변환
  2. PHP 컬 라이브러리를 사용하여 다른 웹사이트에서 JSON 데이터 가져오기
  3. 제3자 라이브러리(예: Guzzle)를 사용하여 JSON 데이터 가져오기
  4. JSON 데이터를 가져오는 동안 오류 및 예외 처리
  5. json_decode() 함수를 사용하여 JSON 문자열을 PHP 배열로 변환

PHP는 JSON을 변환하는 쉬운 방법을 제공합니다. 문자열을 PHP 배열로, 즉 json_decode() 함수로 변환합니다. 함수는 다음과 같이 사용됩니다.

$json_string = '{"name":"John","age":30,"city":"New York"}';
$php_array = json_decode($json_string, true);
print_r($php_array);

출력:

Array
(
    [name] => John
    [age] => 30
    [city] => New York
)

위의 예에서는 먼저 JSON 문자열을 정의한 다음 json_decode() 함수를 사용하여 PHP 배열로 변환합니다.

json_decode() 함수의 두 번째 매개 변수는 JSON 문자열을 연관 배열로 변환할지 여부를 나타내는 부울 값이라는 점에 유의하세요. false로 설정하거나 설정하지 않으면 JSON 문자열을 객체로 변환합니다. 그러나 JSON 문자열을 배열로 변환하는 것이 더 일반적입니다.

또한 JSON 문자열이 유효하지 않거나 유효하지 않은 JSON 데이터를 포함하는 경우 json_decode() 함수는 NULL을 반환합니다. 따라서 배열을 사용하기 전에 반환 값이 NULL인지 확인해야 합니다.

  1. PHP 컬 라이브러리를 사용하여 다른 웹사이트에서 JSON 데이터 가져오기

다른 웹사이트에서 JSON 데이터를 가져오려면 PHP 컬 라이브러리를 사용할 수 있습니다. 컬 라이브러리는 HTTP, FTP, SMTP 등을 포함한 여러 프로토콜을 지원하는 오픈 소스 라이브러리입니다.

다음은 JSON 데이터를 얻기 위해 컬을 사용하는 간단한 예입니다:

$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, "http://example.com/data.json");
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true);
$json_data = curl_exec($curl_handle);
curl_close($curl_handle);

$php_array = json_decode($json_data, true);
print_r($php_array);

위 코드에서 먼저 컬_init() 함수를 통해 컬 세션을 생성합니다. 그런 다음, 컬_setopt() 함수를 사용하여 웹사이트에서 JSON 데이터를 다운로드하기 위한 URL과 다운로드한 데이터를 문자열로 저장하는 옵션을 포함하는 옵션을 설정합니다.

마지막으로, curl_exec() 함수를 사용하여 컬 세션을 실행하고 반환된 JSON 데이터를 $json_data 변수에 저장합니다. 그런 다음 json_decode() 함수를 사용하여 $json_data 문자열을 PHP 배열로 변환합니다.

위 예제의 컬 세션은 스크립트가 실행된 후 컬을 자동으로 닫지 않는다는 점에 주목할 가치가 있습니다. 따라서 컬 세션은 컬_close() 함수를 사용하여 명시적으로 닫아야 합니다.

  1. 제3자 라이브러리(예: Guzzle)를 사용하여 JSON 데이터 가져오기

PHP에는 다른 웹사이트에서 JSON 데이터를 쉽게 가져올 수 있는 많은 제3자 라이브러리가 있습니다. 매우 인기 있는 라이브러리 중 하나는 Guzzle입니다.

Guzzle은 요청을 보내고 응답을 처리하는 HTTP 기반 PHP 클라이언트입니다. Guzzle은 시간 초과, 리디렉션, 쿠키 관리 및 기타 문제를 자동으로 처리할 수 있습니다. 또한 비동기 처리 및 PSR-7 HTTP 메시지도 지원합니다. 다음은 Guzzle을 사용하여 JSON 데이터를 가져오는 예입니다.

use GuzzleHttp\Client;

$client = new Client();
$response = $client->get('http://example.com/data.json');
$json_data = $response->getBody()->getContents();
$php_array = json_decode($json_data, true);
print_r($php_array);

위 예에서는 Guzzle 클라이언트가 먼저 생성됩니다. 그런 다음 $client->get() 메서드를 사용하여 GET 요청을 보내고 응답을 $response 변수에 저장합니다.

$response->getBody()->getContents() 메서드를 사용하여 응답 개체에서 응답의 본문 콘텐츠를 가져와 $json_data 변수에 저장합니다. 마지막으로 json_decode() 함수를 사용하여 $json_data 문자열을 PHP 배열로 변환합니다.

  1. JSON 데이터를 가져오는 동안 오류 및 예외 처리

다른 웹사이트에서 JSON 데이터를 가져오거나 JSON 문자열을 PHP 배열로 변환하는 동안 오류 또는 예외가 발생할 수 있습니다. 따라서 적절한 오류 처리 및 예외 처리 메커니즘을 코드에 추가해야 합니다.

예를 들어 다음 코드 예제에서는 try-catch 블록을 사용하여 JSON 디코딩 오류를 잡는 방법을 보여줍니다.

$json_string = '{"name":"John","age":30,"city":"New York","}';
try {
    $php_array = json_decode($json_string, true, 512, JSON_THROW_ON_ERROR);
    print_r($php_array);
} catch (JsonException $e) {
    echo 'JSON解码错误:', $e->getMessage();
}

위 코드에서는 JSON_THROW_ON_ERROR 옵션과 try-catch 블록을 사용하여 JSON 오류 예외를 포착합니다. JSON 문자열이 유효하지 않으면 JsonException이 발생합니다.

또한, 컬 작업과 Guzzle 요청을 함수에 캡슐화할 수 있으며 오류 및 예외 처리가 포함됩니다. 이렇게 하면 코드를 더 쉽게 관리하고 재사용할 수 있습니다.

요약

JSON 배열을 얻는 것은 현대 웹 개발의 중요한 부분입니다. PHP의 json_decode() 함수는 JSON 문자열을 PHP 배열로 편리하게 변환할 수 있으며, 컬 및 Guzzle과 같은 라이브러리는 다른 웹사이트에서 JSON 데이터를 얻을 수 있습니다. 이러한 방법은 간단하고 사용하기 쉽지만 JSON 데이터를 얻을 때 오류 및 예외 처리에 특별한 주의가 필요합니다.

위 내용은 PHP에서 json 배열을 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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