Home > Article > Backend Development > How to convert json string to php object
In modern web development, data transmission and conversion are often required. Among them, JSON (JavaScript Object Notation) is a lightweight data exchange format. Due to its ease of reading and writing, it has become one of the most commonly used data formats in web development. In PHP development, you can use the json_decode() function to convert JSON strings into PHP objects. This article will introduce the implementation method of converting json strings into PHP objects.
json_decode() is a commonly used function in PHP. It is used to decode JSON format strings and convert Convert it to a PHP object or array. The basic syntax is as follows:
mixed json_decode(string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]])
Among them, the $json parameter is the JSON format string that needs to be decoded, and the $assoc parameter represents whether to convert the JSON string into an associative array. The default is false, which means converting into an object. $depth specifies the maximum depth of the object or array, which defaults to 512. $options are other options passed to the decoder.
For example, we have the following string in JSON format:
{ "name": "Tom", "age": 18, "hobbies": ["reading", "swimming", "traveling"], "address": { "country": "China", "province": "Beijing", "city": "Beijing" } }
To convert this string into a PHP object, you can simply call the json_decode() function:
$jsonStr = '{"name":"Tom","age":18,"hobbies":["reading","swimming","traveling"],"address":{"country":"China","province":"Beijing","city":"Beijing"}}'; $phpObj = json_decode($jsonStr);
After executing the above code, $phpObj will be a PHP object with the same content as the original JSON string.
In actual development, we may encounter some JSON format strings that require special processing. Below, we'll introduce a few advanced uses.
1) Parse JSON strings with Unicode encoding
Some JSON strings contain Unicode-encoded characters, for example:
{ "name": "\u5f20\u4e09", "age": 20, "gender": true }
Using the json_decode() function to parse When using this kind of string, you need to specify the JSON_UNESCAPED_UNICODE option:
$jsonStr = '{"name":"\u5f20\u4e09","age":20,"gender":true}'; $phpObj = json_decode($jsonStr, false, 512, JSON_UNESCAPED_UNICODE);
2) Parse JSON strings with comments
Some JSON format strings have comments, for example:
{ // 个人信息 "name": "Tom", "age": 18, /* 爱好 */ "hobbies": [ "reading", "swimming", "traveling" ] }
When using the json_decode() function to parse this kind of string, you need to remove the comments first and then parse. The following is a simple implementation:
function remove_json_comments($jsonStr) { return preg_replace('/^\s*(\/\/.*)$/m', '', $jsonStr); } $jsonStr = ' { // 个人信息 "name": "Tom", "age": 18, /* 爱好 */ "hobbies": [ "reading", "swimming", "traveling" ] } '; $phpObj = json_decode(remove_json_comments($jsonStr));
3) Parse JSON strings with special characters
In JSON strings, some characters need to be escaped, such as double quotes, backslashes Gang etc. If the JSON string contains these special characters, errors may occur when parsing using the json_decode() function. The following is a solution:
$jsonStr = '{"name":"Tom","age":18,"info":"\"Hello World\""}'; $phpObj = json_decode(str_replace('\"', '"', $jsonStr));
In web development, the use of JSON format data has become very common. In PHP, you can use the json_decode() function to easily convert JSON format strings into PHP objects or arrays, providing developers with great convenience. In actual development, we can also use the advanced options of the json_decode() function to parse JSON format strings with comments, Unicode encoding, or special characters. By mastering these skills, you can deal with different JSON format data more flexibly.
The above is the detailed content of How to convert json string to php object. For more information, please follow other related articles on the PHP Chinese website!