JSON 预定义常量
以下常量由此扩展定义,并且仅当扩展已编译为 PHP 或在运行时动态加载时可用。
以下常量指示 json_last_error() 函数返回错误类型。
错误类型 | 描述 |
---|---|
JSON_ERROR_NONE (integer) | 未发生错误。 |
JSON_ERROR_DEPTH (integer) | 已超过最大堆栈深度 |
JSON_ERROR_STATE_MISMATCH (integer) | 在下溢或模式不匹配时发生 |
JSON_ERROR_CTRL_CHAR (integer) | 控制字符错误,可能编码错误 |
JSON_ERROR_SYNTAX (integer) | 语法错误 |
JSON_ERROR_UTF8 (integer) | 格式错误的 UTF-8 字符,可能编码错误 |
JSON_ERROR_RECURSION (integer) | 传递给 json_encode() 的对象或数组包含递归引用,不能进行编码。如果给出了 JSON_PARTIAL_OUTPUT_ON_ERROR 选项,则 NULL 将在递归引用的位置进行编码 |
JSON_ERROR_INF_OR_NAN (integer) | 传递给 json_encode() 的值包括 NAN 或 INF。如果给出了 JSON_PARTIAL_OUTPUT_ON_ERROR 选项,则 0 将被编码以代替这些特殊数字 |
JSON_ERROR_UNSUPPORTED_TYPE (integer) | 已将不受支持的类型的值提供给 json_encode(),例如资源。如果给出了 JSON_PARTIAL_OUTPUT_ON_ERROR 选项,则 NULL 将被编码以代替 unsupported 的值 |
JSON_ERROR_INVALID_PROPERTY_NAME (integer) | 将 JSON 对象解码为 PHP 对象时,传递给 json_decode() 的字符串中包含以 \u0000 字符开头的键 |
JSON_ERROR_UTF16 (integer) | 传递给 json_encode() 的 JSON 字符串中包含的 Unicode 转义中的单个不成对 UTF-16 代理项 |
以下常量可以组合起来形成 json_decode() 函数的选项。
常量 | 描述 |
---|---|
JSON_BIGINT_AS_STRING (integer) | 将大整数解码为其原始字符串值 |
JSON_OBJECT_AS_ARRAY (integer) | 将 JSON 对象解码为 PHP 数组。可以通过调用 json_decode() 且第二个参数等于 TRUE 来自动添加此选项 |
以下常量可以组合成 json_encode() 的选项。
常量 | 描述 |
---|---|
JSON_HEX_TAG (integer) | 所有 < 和 > 都转换为 \u003C 和 \u003E |
JSON_HEX_AMP (integer) | 所有 &s 都转换为 \u0026 |
JSON_HEX_APOS (integer) | 所有 ' 都转换为 \u0027 |
JSON_HEX_QUOT (integer) | 所有 “ 都转换为 \u0022 |
JSON_FORCE_OBJECT (integer) | 使用非关联数组时,输出对象而不是数组。当输出的接收者需要对象且数组为空时,尤其有用 |
JSON_NUMERIC_CHECK (integer) | 将数字字符串编码为数字 |
JSON_PRETTY_PRINT (integer) | 在返回的数据中使用空格来格式化数据 |
JSON_UNESCAPED_SLASHES (integer) | 不要转义 / |
JSON_UNESCAPED_UNICODE (integer) | 按字面意思对多字节 Unicode 字符进行编码(默认转义为 \uXXXX) |
JSON_PARTIAL_OUTPUT_ON_ERROR (integer) | 替换一些不可编码的值,而不是失败 |
JSON_PRESERVE_ZERO_FRACTION (integer) | 确保浮点值始终编码为浮点值 |
JSON_UNESCAPED_LINE_TERMINATORS (integer) | 提供 JSON_UNESCAPED_UNICODE 时,行终止符保持未转义状态。它使用与 PHP 7.1 之前相同的行为,但没有这个常量 |
函数列表
函数 | 描述 |
---|---|
json_decode() | 解码 JSON 字符串。 |
json_encode() | 返回值的 JSON 表示形式。 |
json_last_error() | 返回上次发生的错误。 |
json_last_error_msg() | 返回上次 json_encode() 或 json_decode() 调用的错误字符串。 |
sonserializable_interface() | 实现 JsonSerializable 接口的 Object 可以在使用 json_encode() 函数编码时自定义其 JSON 表示形式。 |
JsonSerializable_jsonSerialize() | 指定可以序列化为 JSON 的数据。 |