PHP JSON Handling

Introduction

In modern web development, data exchange between client and server is a crucial part of building dynamic applications. One of the most widely used formats for data exchange is JSON (JavaScript Object Notation). It is lightweight, easy to read, and supported by almost all programming languages.

PHP provides built-in functions to work with JSON data efficiently. Whether you are building APIs, handling AJAX requests, or integrating third-party services, understanding JSON handling in PHP is essential.

What is PHP JSON Handling?

PHP JSON handling refers to the process of converting data between PHP arrays/objects and JSON format.

There are two main operations:

1. Encoding

Converting PHP data into JSON format using json_encode().

2. Decoding

Converting JSON data into PHP arrays or objects using json_decode().

Example JSON:


{
 "name": "John",
 "age": 25,
 "city": "Delhi"
}

Why it is used

JSON handling in PHP is widely used for:

1. API Development

Sending and receiving data between server and client.

2. AJAX Requests

Communicating with JavaScript without reloading the page.

3. Data Storage

Storing structured data in files or databases.

4. Third-Party Integration

Working with external APIs like payment gateways or social platforms.

5. Mobile Applications

Exchanging data between backend and mobile apps.

Syntax

1. json_encode()

Converts PHP array/object to JSON.


<?php
$json = json_encode($data);
?>

2. json_decode()

Converts JSON string to PHP data.


<?php
$data = json_decode($json, true);
?>
  • true → Returns associative array
  • false → Returns object

3. Check JSON Errors


<?php
json_last_error();
json_last_error_msg();
?>

Examples:

Example 1: Encode PHP Array to JSON


<?php
$data = [
   "name" => "Gaurav",
   "age" => 28,
   "city" => "Delhi"
];
$json = json_encode($data);
echo $json;
?>

Example 2: Decode JSON to PHP Array


<?php
$json = '{"name":"Gaurav","age":28,"city":"Delhi"}';
$data = json_decode($json, true);
echo $data['name'];
?>

Example 3: Decode JSON to Object


<?php
$json = '{"name":"Gaurav","age":28}';
$data = json_decode($json);
echo $data->name;
?>

Example 4: JSON Pretty Print


<?php
$data = ["name" => "John", "age" => 25];
echo json_encode($data, JSON_PRETTY_PRINT);
?>

Example 5: Handling JSON Errors


<?php
$json = '{"name": "John", "age": }';
$data = json_decode($json);
if(json_last_error() !== JSON_ERROR_NONE) {
   echo json_last_error_msg();
}
?>

Real-Life Example

Example 1: API Response

In real-world applications, PHP APIs often return JSON data:


<?php
header('Content-Type: application/json');
$data = [
   "status" => "success",
   "message" => "Data fetched successfully",
   "data" => [
       "id" => 1,
       "name" => "Product A"
   ]
];
echo json_encode($data);
?>

Example 2: Receiving JSON Data


<?php
$json = file_get_contents("php://input");
$data = json_decode($json, true);
echo "Name: " . $data['name'];
?>

Example 3: Storing JSON in File


<?php
$data = ["name" => "John", "age" => 25];
file_put_contents("data.json", json_encode($data));
?>

Example 4: Reading JSON File


<?php
$json = file_get_contents("data.json");
$data = json_decode($json, true);
print_r($data);
?>

Common Mistakes

1. Forgetting true in json_decode()

Returns object instead of array.

2. Not Handling Errors

Ignoring json_last_error() can cause bugs.

3. Invalid JSON Format

Incorrect syntax leads to decoding failure.

4. Encoding Unsupported Data Types

Resources or circular references cannot be encoded.

5. Not Setting Content-Type Header

Always use:


<?php
header('Content-Type: application/json');
?>

6. Mixing JSON with HTML Output

Breaks API respons

Conclusion

PHP JSON handling is a powerful feature that allows data exchange between server and client. With functions like json_encode() and json_decode(), developers can easily convert data into a format that is widely supported across platforms.

JSON is essential for APIs, AJAX communication, and modern web applications. However, developers should always validate JSON data, handle errors properly, and ensure correct formatting to avoid issues.

Related PHP Tutorials