Home > Backend Development > PHP Tutorial > Why Does `json_decode` Return NULL Despite Valid-Looking JSON Data?

Why Does `json_decode` Return NULL Despite Valid-Looking JSON Data?

DDD
Release: 2024-12-12 22:19:11
Original
953 people have browsed it

Why Does `json_decode` Return NULL Despite Valid-Looking JSON Data?

Understanding JSON Decoding Issue in Web Service Calls

In web service interactions, occasionally, the json_decode function returns NULL. A confounding issue arises when a web service provides JSON data that resembles:

var_dump($foo):
string(62) "{"action":"set","user":"123123123123","status":"OK"}"
Copy after login

However, attempting to decode the JSON in the application returns NULL:

$data = json_decode($foo, true);
var_dump($data):
NULL
Copy after login

Resolving the Problem

One potential cause for this issue is PHP's magic quotes functionality. Magic quotes automatically escape special characters in form data, potentially interfering with JSON parsing. To resolve this:

if (get_magic_quotes_gpc()) {
  $param = stripslashes($_POST['param']);
} else {
  $param = $_POST['param'];
}
$param = json_decode($param, true);
Copy after login

By disabling magic quotes or stripping slashes from the JSON data, the application can accurately decode the JSON and retrieve the desired information.

The above is the detailed content of Why Does `json_decode` Return NULL Despite Valid-Looking JSON Data?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template