json_decode(): Argument #1 ($json) must be of type string, array given
时间: 2024-03-19 17:45:02 浏览: 47
这个错误通常是因为 `json_decode()` 函数的第一个参数不是一个有效的 JSON 字符串,而是一个数组。这个函数只能接受一个字符串作为参数并将其解码为 PHP 对象或数组。
如果你想将一个数组转换成 JSON 字符串,可以使用 `json_encode()` 函数。例如:
```php
$data = array('name' => 'Alice', 'age' => 20);
$json = json_encode($data);
```
上面的代码将 `$data` 数组转换成 JSON 字符串并将其赋值给 `$json` 变量。如果你想将这个变量传递给另一个函数,你需要将它作为字符串传递,例如:
```php
some_function($json);
```
如果你想将一个 JSON 字符串解码为 PHP 对象或数组,你需要确保它是一个有效的 JSON 字符串。你可以使用 `json_last_error()` 函数来检查解码是否成功,例如:
```php
$json = '{"name":"Alice","age":20}';
$data = json_decode($json);
if (json_last_error() === JSON_ERROR_NONE) {
// 解码成功
var_dump($data);
} else {
// 解码失败
echo 'JSON 解码失败:' . json_last_error_msg();
}
```
上面的代码将 `$json` 字符串解码为 PHP 对象或数组,并使用 `json_last_error()` 函数检查解码是否成功。如果解码成功,它将输出解码后的数据,否则它将输出一个错误消息。