>  기사  >  백엔드 개발  >  PHP에서 JSON을 배열로 변환하는 방법

PHP에서 JSON을 배열로 변환하는 방법

PHPz
PHPz원래의
2023-04-27 09:01:051204검색

JSON(JavaScript Object Notation)은 웹 애플리케이션 간의 데이터 상호 작용에 일반적으로 사용되는 경량 데이터 교환 형식입니다. PHP에서는 처리를 위해 JSON 형식 데이터를 배열로 변환해야 하는 경우가 많습니다. 이 기사에서는 PHP에서 JSON을 배열로 변환하는 방법을 자세히 소개합니다.

1. PHP 내장 함수 json_decode()

PHP에는 JSON 형식 문자열을 PHP 배열로 변환할 수 있는 내장 함수 json_decode()가 있습니다. 이 함수의 구문은 다음과 같습니다.

mixed json_decode ( string $json [, bool $assoc = FALSE [, int $depth = 512 [, int $options = 0 ]]] )

그 중 $json 매개변수는 디코딩할 JSON 문자열을 나타냅니다. $assoc 매개변수의 기본값은 $length 매개변수 대신 객체가 반환됨을 나타냅니다. 최대 디코딩 깊이를 나타냅니다. $options 매개변수는 디코딩 옵션을 나타냅니다.

다음은 JSON 문자열을 배열로 변환하는 간단한 예입니다.

<?php
// JSON字符串
$json = &#39;{"name":"Tom","age":18,"hobbies":["reading","writing","swimming"]}&#39;;

// 将JSON字符串转换为数组
$arr = json_decode($json, true);

// 输出数组
print_r($arr);
?>

출력 결과는 다음과 같습니다.

Array (
    [name] => Tom
    [age] => 18
    [hobbies] => Array (
        [0] => reading
        [1] => writing
        [2] => swimming
    )
)

2. PHP는 JSON 구문 분석 오류를 처리합니다

그러나 실제 개발에서는 때때로 JSON 구문 분석 오류가 발생합니다. 형식 오류, 데이터 유형 불일치 등 이때, 다음 두 가지 방법으로 처리할 수 있습니다.

  1. try-catch를 사용하여 예외를 catch합니다.

PHP에서 try-catch 문을 사용하여 예외를 catch하고 처리할 수 있습니다. json_decode() 함수가 JSON 문자열을 구문 분석할 때 형식이 올바르지 않거나 다른 오류가 있는 경우 예외가 발생합니다. try-catch를 사용하여 이러한 예외를 포착하고 처리할 수 있습니다.

<?php
// JSON字符串
$json = &#39;{"name":"Tom","age":18,"hobbies":}&#39;; // 格式错误

// 将JSON字符串转换为数组
try {
    $arr = json_decode($json, true, 512, JSON_THROW_ON_ERROR);
    print_r($arr);
} catch (JsonException $e) {
    echo "JSON字符串格式错误:" . $e->getMessage();
}
?>

출력 결과는 다음과 같습니다: JSON 문자열 형식 오류: 구문 오류

  1. json_last_error() 함수를 사용하여 오류 정보 가져오기

예외를 잡는 것 외에도 JSON을 구문 분석할 때 json_last_error() 함수를 사용하여 오류를 얻을 수도 있습니다 문자열 정보. 이 함수는 마지막 JSON 구문 분석의 오류 코드를 나타내는 정수를 반환합니다. 예를 들어, 파싱된 JSON 문자열의 형식이 잘못된 경우 json_last_error() 함수는 JSON_ERROR_SYNTAX를 반환합니다. 오류 코드를 기반으로 파싱 성공 여부를 판단하고 그에 따라 처리할 수 있습니다.

예는 다음과 같습니다.

<?php
// JSON字符串
$json = &#39;{"name":"Tom","age":18,"hobbies":}&#39;; // 格式错误

// 将JSON字符串转换为数组
$arr = json_decode($json, true);

// 判断是否解析成功
if (json_last_error() == JSON_ERROR_NONE) {
    print_r($arr);
} else {
    echo "JSON字符串格式错误:" . json_last_error_msg();
}
?>

출력 결과는 다음과 같습니다. JSON 문자열 형식 오류: 구문 오류

요약

PHP에서는 내장 함수 json_decode()를 사용하여 JSON 형식 문자열을 배열로 변환할 수 있습니다. . JSON 문자열을 구문 분석할 때 오류가 발생하면 try-catch 문을 사용하여 예외를 포착하거나 json_last_error() 함수를 사용하여 오류 정보를 얻고 다른 오류 코드에 따라 처리할 수 있습니다. 이 기사에서는 실제 상황에 따라 선택할 수 있는 두 가지 오류 처리 방법을 소개합니다.

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

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