PHP - JavaScript 对象表示法函数



JSON 中的预定义常量

以下常量由此扩展定义,并且只有当扩展已编译到 PHP 中或在运行时动态加载时才可用。

以下常量指示 json_last_error() 函数返回的错误类型。

  • JSON_ERROR_NONE (整数) - 未发生错误。
  • JSON_ERROR_DEPTH (整数) - 已超过最大堆栈深度
  • JSON_ERROR_STATE_MISMATCH (整数) - 发生下溢或模式不匹配
  • JSON_ERROR_CTRL_CHAR (整数) - 控制字符错误,可能编码不正确
  • JSON_ERROR_SYNTAX (整数) - 语法错误
  • JSON_ERROR_UTF8 (整数) - UTF-8 字符格式错误,可能编码不正确
  • JSON_ERROR_RECURSION (整数) - 传递给 json_encode() 的对象或数组包含递归引用,无法编码。如果给出了 JSON_PARTIAL_OUTPUT_ON_ERROR 选项,则 NULL 将编码在递归引用的位置
  • JSON_ERROR_INF_OR_NAN (整数) - 传递给 json_encode() 的值包含 NAN 或 INF。如果给出了 JSON_PARTIAL_OUTPUT_ON_ERROR 选项,则 0 将编码在这些特殊数字的位置
  • JSON_ERROR_UNSUPPORTED_TYPE (整数) - 给 json_encode() 提供了不支持类型的值,例如资源。如果给出了 JSON_PARTIAL_OUTPUT_ON_ERROR 选项,则 NULL 将编码在不支持的值的位置
  • JSON_ERROR_INVALID_PROPERTY_NAME (整数) - 在解码 JSON 对象到 PHP 对象时,传递给 json_decode() 的字符串中存在以 \u0000 字符开头的键
  • JSON_ERROR_UTF16 (整数) - JSON 字符串中包含的 unicode 转义中存在单个未配对的 UTF-16 代理

以下常量可以组合形成 json_decode() 函数的选项。

  • JSON_BIGINT_AS_STRING (整数) - 将大整数解码为其原始字符串值
  • JSON_OBJECT_AS_ARRAY (整数) - 将 JSON 对象解码为 PHP 数组。此选项可以通过使用等于 TRUE 的第二个参数调用 json_decode() 自动添加

以下常量可以组合形成 json_encode() 的选项。

  • JSON_HEX_TAG (整数) - 所有 < 和 > 转换为 \u003C 和 \u003E
  • JSON_HEX_AMP (整数) - 所有 & 转换为 \u0026
  • JSON_HEX_APOS (整数) - 所有 ' 转换为 \u0027
  • JSON_HEX_QUOT (整数) - 所有 " 转换为 \u0022
  • JSON_FORCE_OBJECT (整数) - 当使用非关联数组时,输出对象而不是数组。当输出的接收者期望一个对象并且数组为空时,这尤其有用
  • JSON_NUMERIC_CHECK (整数) - 将数字字符串编码为数字
  • JSON_PRETTY_PRINT (整数) - 在返回的数据中使用空格对其进行格式化
  • JSON_UNESCAPED_SLASHES (整数) - 不要转义 /
  • JSON_UNESCAPED_UNICODE (整数) - 按字面意思编码多字节 Unicode 字符(默认情况下转义为 \uXXXX)
  • JSON_PARTIAL_OUTPUT_ON_ERROR (整数) - 替换一些不可编码的值而不是失败
  • JSON_PRESERVE_ZERO_FRACTION (整数) - 确保浮点值始终编码为浮点值
  • JSON_UNESCAPED_LINE_TERMINATORS (整数) - 当提供 JSON_UNESCAPED_UNICODE 时,换行符保持未转义。它使用与 PHP 7.1 之前在没有此常量的情况下相同的方式
序号 函数和描述
1 json_decode()

json_decode() 函数可以解码 JSON 字符串。

2 json_encode()

json_encode() 函数可以返回值的 JSON 表示形式。

3 json_last_error()

json_last_error() 函数可以返回发生的最后一个错误。

4 json_last_error_msg()

json_last_error_msg() 函数可以返回最后一次 json_encode() 或 json_decode() 调用的错误字符串。

5 sonserializable_interface()

实现 JsonSerializable 接口的对象可以在使用 json_encode() 函数编码时自定义其 JSON 表示形式。

6 JsonSerializable_jsonSerialize()

JsonSerializable::jsonSerialize() 可以指定可以序列化为 JSON 的数据。

php_function_reference.htm
广告