PHP JSON Handling


PHP JSON 데이터 처리 (Handling JSON Data)

JSON 개요

JSON(JavaScript Object Notation)은 경량의 데이터 교환 형식으로, 사람과 기계 모두가 이해하기 쉽습니다. PHP에서는 JSON 데이터를 생성하고 파싱하여 다룰 수 있는 여러 함수와 메서드를 제공합니다.

JSON 데이터 생성 (Encoding)

PHP에서는 json_encode() 함수를 사용하여 PHP 배열이나 객체를 JSON 형식의 문자열로 변환할 수 있습니다.

예제: 배열을 JSON 문자열로 인코딩하기

<?php
// PHP 배열 생성
$data = array(
    'name' => 'John Doe',
    'age' => 30,
    'city' => 'New York'
);

// 배열을 JSON 문자열로 변환
$jsonString = json_encode($data);

// JSON 출력
echo $jsonString;
?>

위 예제에서는 PHP 배열을 JSON으로 인코딩하여 $jsonString에 저장하고, 이를 출력합니다.

JSON 데이터 파싱 (Decoding)

반대로, PHP에서는 json_decode() 함수를 사용하여 JSON 형식의 문자열을 PHP 배열이나 객체로 변환할 수 있습니다.

예제: JSON 문자열을 배열로 디코딩하기

<?php
// JSON 형식의 문자열
$jsonString = '{"name":"John Doe","age":30,"city":"New York"}';

// JSON 문자열을 PHP 배열로 변환
$data = json_decode($jsonString, true); // true를 설정하면 배열 형태로 변환됩니다.

// 배열 출력
print_r($data);
?>

위 예제에서는 JSON 문자열 $jsonString을 PHP 배열로 디코딩하여 $data에 저장하고, print_r() 함수를 사용하여 배열을 출력합니다.

JSON 예제: Ajax와 PHP에서 JSON 데이터 주고받기

이 예제는 Ajax를 사용하여 클라이언트에서 JSON 데이터를 PHP로 보내고, PHP에서 JSON 데이터를 처리하여 다시 클라이언트로 반환하는 방법을 보여줍니다.

클라이언트 측 (JavaScript)
// Ajax 요청을 생성하고 JSON 데이터를 PHP 서버로 보내며, 응답을 처리하는 JavaScript 코드 예제

// XMLHttpRequest 객체 생성
var xhttp = new XMLHttpRequest();

// 서버 URL 및 요청 메서드 설정
var url = "server.php";
var method = "POST";

// 보낼 JSON 데이터 준비
var data = {
    name: "John Doe",
    age: 30,
    city: "New York"
};

// JSON 데이터를 문자열로 변환
var jsonString = JSON.stringify(data);

// Ajax 요청 설정
xhttp.open(method, url, true);
xhttp.setRequestHeader("Content-type", "application/json");

// 요청 완료 후 처리할 콜백 함수 설정
xhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    // 서버에서 받은 JSON 데이터 파싱
    var response = JSON.parse(this.responseText);

    // 결과 출력 예제 (여기서는 콘솔에 출력)
    console.log("서버에서 받은 결과: " + response.result);
  }
};

// JSON 데이터 전송
xhttp.send(jsonString);
서버 측 (PHP)
<?php
// PHP에서 JSON 데이터를 받아 처리하고 JSON 형식으로 응답하는 예제

// POST 메서드로 전송된 JSON 데이터 받기
$jsonData = file_get_contents('php://input');

// JSON 데이터를 PHP 배열로 디코딩
$data = json_decode($jsonData, true); // true를 설정하면 배열 형태로 변환됩니다.

// 처리할 로직 구현 예제 (여기서는 받은 데이터를 대문자로 변환하여 반환하는 예제)
$result = strtoupper($data['name']);

// 결과를 JSON 형식으로 반환
echo json_encode(array('result' => $result));
?>

위 예제에서는 클라이언트에서 생성한 JSON 데이터를 PHP 서버로 전송하여 file_get_contents('php://input')을 사용하여 받고, 이를 JSON 디코딩하여 처리하고 다시 JSON 형식으로 반환합니다.

JSON 데이터는 PHP와 JavaScript 사이의 데이터 교환에서 매우 유용하게 사용됩니다. JSON을 이용하면 데이터를 효율적으로 교환하고, 데이터의 형식이나 구조를 쉽게 변경할 수 있습니다.


Leave a Reply

Your email address will not be published. Required fields are marked *