json怎么转php数组对象数组
可以使用PHP内置的json_decode()函数将JSON转换为PHP数组对象。
该函数的语法如下:
mixed json_decode(string $json, bool $assoc = false, int $depth = 512, int $options = 0)
其中,$json是要转换的JSON字符串,$assoc表示是否将返回结果转换为关联数组,默认为false,$depth表示最大递归深度,默认为512,$options表示传递给JSON解码器的选项。
以下是一个完整的示例:
$json = '{"name": "张三", "age": 20, "skills": ["PHP", "MySQL", "JavaScript"]}'; $data = json_decode($json, true); var_dump($data);
输出结果如下:
array(3) { ["name"]=> string(6) "张三" ["age"]=> int(20) ["skills"]=> array(3) { [0]=> string(3) "PHP" [1]=> string(5) "MySQL" [2]=> string(10) "JavaScript" } }
在这个示例中,我们定义了一个JSON字符串,然后使用json_decode()函数将其转换为PHP数组对象$data。最后,使用var_dump()函数输出$data的值,可以看到它已经成功转换为PHP数组对象了。
需要注意的是,如果JSON字符串中含有特殊字符(如换行符、制表符等),可能需要使用json_decode()函数的第四个参数($options),将其转换为JSON_UNESCAPED_UNICODE选项,以避免出现转义字符。例如:
$json = '{"name": "张三\n李四", "age": 20}'; $data = json_decode($json, true, 512, JSON_UNESCAPED_UNICODE); var_dump($data);
输出结果如下:
array(2) { ["name"]=> string(7) "张三 李四" ["age"]=> int(20) }