PHP 개발에서 데이터 변환 및 전송은 특히 전면 및 백엔드 상호 작용을 처리 할 때 JSON 형식의 데이터가 주류가됩니다. PHP, JSON_DECODE 및 JSON_ENCODE 로 구축 된 두 가지 중요한 기능은 JSON 데이터 및 PHP 데이터 유형의 상호 전송을 실현하는 도구입니다. 이 기사는이 두 기능의 사용법과 효율적인 데이터 변환 프로세스를 만들기 위해이를 사용하는 방법에 대해 자세히 설명합니다.
JSON_ENCODE 기능은 PHP 배열 또는 객체를 JSON 형식 문자열로 변환하여 프론트 엔드 또는 스토리지로 쉽게 통과 할 수 있습니다.
샘플 코드 :
<?php
$data = [
"name" => "장 산",
"age" => 28,
"email" => "[email protected]"
];
$jsonString = json_encode($data, JSON_UNESCAPED_UNICODE);
echo $jsonString;
?>
산출:
{"name":"장 산","age":28,"email":"[email protected]"}
그중에서도 JSON_UNESCAPED_UNICODE 매개 변수는 중국어가 \ uxxxx 형식으로 탈출되지 않도록하는 데 사용됩니다.
JSON_DECODE 기능은 JSON 문자열을 PHP 배열 또는 객체로 다시 변환 할 수 있으며, 이는 PHP 작동에 편리합니다.
샘플 코드 :
<?php
$jsonString = '{"name":"Li Si","age":35,"website":"https://gitbox.net/api"}';
$data = json_decode($jsonString, true); // 두 번째 매개 변수는입니다true배열로 돌아갑니다,그렇지 않으면 개체를 반환하십시오
print_r($data);
?>
산출:
Array
(
[name] => Li Si
[age] => 35
[website] => https://gitbox.net/api
)
일반적으로 개발시 JSON 형식의 요청이 수신되고 처리를 위해 PHP 배열로 변환 된 다음 처리 결과가 다시 JSON으로 변환되어 클라이언트로 돌아갑니다. 예:
<?php
// 아날로그가 접수되었습니다JSON요청 본문
$jsonRequest = '{"username":"admin","password":"123456","callback_url":"http://gitbox.net/callback"}';
// 할 것이다JSON문자열이 디코딩됩니다PHP정렬
$requestData = json_decode($jsonRequest, true);
if ($requestData && $requestData['username'] === 'admin') {
// 비즈니스 로직을 처리합니다,예를 들어, 비밀번호를 확인하십시오
$response = [
"status" => "success",
"message" => "성공적으로 로그인하십시오",
"redirect" => $requestData['callback_url']
];
} else {
$response = [
"status" => "error",
"message" => "잘못된 사용자 이름 또는 비밀번호"
];
}
// 할 것이다PHP정렬编码为JSON문자열을 앞쪽으로 되돌립니다
echo json_encode($response, JSON_UNESCAPED_UNICODE);
?>
이 예제는 JSON_DECODE 및 JSON_ENCODE를 사용하여 프론트 엔드 JSON 데이터 및 비즈니스 처리의 전송 및 수신을 완료하는 방법을 보여줍니다.
오류 처리 <br> JSON_DECODE를 사용하는 경우 NULL 이 반환되는지 여부를 확인하고 프로그램 오류를 피하기 위해 JSON_LAST_ERROR () 를 통해 디코딩이 성공했는지 판단해야합니다.
<?php
$data = json_decode($jsonString, true);
if (json_last_error() !== JSON_ERROR_NONE) {
echo "JSON구문 분석 오류: " . json_last_error_msg();
}
?>
성능 고려 사항
JSON은 대부분의 시나리오에 더 빠르고 적합합니다. 그러나 매우 많은 양의 데이터의 경우 청킹 처리 또는 스트리밍 구문 분석을 고려하는 것이 좋습니다.
캐릭터 인코딩 <br> 입력 JSON 문자열이 CODE 코드 문제를 피하기 위해 UTF-8 인코딩인지 확인하십시오.
보안 <br> 외부에서 전달 된 JSON 데이터를 맹목적으로 믿지 마십시오. 엄격한 체크섬 필터링을 수행하는 것이 가장 좋습니다.
JSON_DECODE 및 JSON_ENCODE는 JSON 데이터를 조작하는 PHP의 핵심 기능입니다. 그것들을 합리적으로 사용하면 데이터 형식의 변환을 효율적으로 완료하고 프론트 엔드 및 백엔드 상호 작용 프로세스를 단순화 할 수 있습니다. 오류 처리와 보안 보호를 결합하면 데이터 변환이보다 안정적이고 안전 할 수 있습니다.
이 두 기능의 사용을 마스터하면 PHP 프로젝트에보다 편리한 데이터 처리 경험이 제공됩니다.