English | 简体中文 | 繁體中文
查询

json_decode()函数—用法及示例

「 将 JSON 格式的字符串转换为 PHP 变量 」


函数名称:json_decode()

适用版本:PHP 5 >= 5.2.0, PHP 7

函数描述:json_decode() 函数用于将 JSON 格式的字符串转换为 PHP 变量。

用法: json_decode(string $json, bool $assoc = false, int $depth = 512, int $options = 0): mixed

参数:

  • $json (必需):要解码的 JSON 字符串。
  • $assoc (可选):当该参数为 true 时,将返回关联数组;当该参数为 false 时,将返回对象。默认为 false。
  • $depth (可选):指定最大解码深度。默认为 512。
  • $options (可选):指定解码选项。默认为 0。

返回值: 解码成功时,将返回解码后的 PHP 变量。解码失败时,将返回 null。

示例:

  1. 解码 JSON 字符串为对象: $json_str = '{"name":"John", "age":30, "city":"New York"}'; $obj = json_decode($json_str); echo $obj->name; // 输出:John

  2. 解码 JSON 字符串为关联数组: $json_str = '{"name":"John", "age":30, "city":"New York"}'; $arr = json_decode($json_str, true); echo $arr["name"]; // 输出:John

  3. 解码包含嵌套数组的 JSON 字符串: $json_str = '{"name":"John", "age":30, "cities":["New York", "London", "Paris"]}'; $obj = json_decode($json_str); echo $obj->cities[0]; // 输出:New York

  4. 解码 JSON 字符串时设置解码选项: $json_str = '{"name":"John", "age":30, "city":"New York"}'; $obj = json_decode($json_str, false, 512, JSON_BIGINT_AS_STRING); echo $obj->age; // 输出:"30"(作为字符串类型输出)

注意事项:

  • 该函数仅适用于解码 JSON 字符串,如果要将 PHP 变量编码为 JSON 字符串,需要使用 json_encode() 函数。
  • 如果 JSON 字符串解码失败,将返回 null。可以通过使用 json_last_error() 和 json_last_error_msg() 函数获取解码错误的详细信息。
  • 在 PHP 7 中,该函数支持解码更大深度的 JSON 字符串,默认为 512。在 PHP 5 中,默认深度为 128。可以通过修改 $depth 参数来自定义解码深度。
  • 可以通过设置解码选项来改变解码行为,例如将大整数作为字符串类型输出(JSON_BIGINT_AS_STRING)。
  • JSON 字符串中的特殊字符(如斜杠、引号等)将自动进行转义。
补充纠错
上一个函数: json_encode()函数
热门PHP函数
分享链接