The example in this article describes the solution for PHP to handle Json string decoding and return NULL. Share it with everyone for your reference. The specific method is as follows:
Generally speaking, php uses the json_decode() function to decode json strings. The first parameter is a string. If the second parameter is true, it returns an array; if it is false, it returns an object. If NULL is returned, an error is reported and json_last_error() is output. The obtained integer value corresponds to the error prompt . As shown below:
The most common value of json_last_error() is the integer 4, which means that the json string is incomplete before json_decode, so the syntax is wrong.
Then it must be that individual characters submitted by the client affect the format of json. You can use JS to filter, which can solve general problems. It mainly filters carriage returns, spaces, and html tags.
The implementation code is as follows:
/* * 过滤函数 */ function htmlEncode(str) { str = str.replace(/\s+/ig, ''); str = str.replace(/&/g, ''); str = str.replace(/</g, ''); str = str.replace(/>/g, ''); str = str.replace(/(?:t| |v|r)*n/g, '<br />'); str = str.replace(/t/g, ' '); str = str.replace(/x22/g, '"'); str = str.replace(/x27/g, '''); str = str.replace(/"/g, ""); return str; }
The above situation is for the fact that you must submit json string data to the server for processing, and can only be filtered on the client.
Some reasons why json_decode($str) returns NULL:
1.$str can only be encoded in UTF-8
2. The element cannot have a comma at the end (different from PHP’s array)
3. Elements cannot use single quotes
4. There cannot be spaces or n in the middle of the element value, and
must be replaced.If you encounter the above situation, you can handle it according to the above methods. I hope this article will be helpful to everyone’s PHP programming.
b.php must submit the cookie value when fetching json content, otherwise a.php will only return empty content.
Just put your key in single quotes and try it.
$arr = array ('Amenities' =>array ('Restaurant/Café' => array('Classroom' => 'Classroom')));
echo json_encode($arr ) ;