PHP JSON 介绍

JSON 扩展实现了 JavaScript Object Notation 数据交换格式。

在 PHP 5 中,解码由 Douglas Crockford 基于 JSON_checker 的解析器处理。

PHP 7 有一个新的和改进的解析器,专门为 PHP 编写并在 PHP 许可下获得许可。


安装

从 PHP 5.2.0 开始,JSON 函数默认启用。 使用这些功能无需安装。


PHP JSON 函数

函数 描述
json_decode() 解码一个 JSON 字符串
json_encode() 将值编码为 JSON 格式
json_last_error() 返回最后发生的错误
json_last_error_msg() 返回最后一次 json_encode() 或 json_decode() 调用的错误字符串

PHP 预定义 JSON 常量

常量 类型 描述
JSON_ERROR_NONE Integer 没有发生错误
JSON_ERROR_DEPTH Integer 已超过最大堆栈深度
JSON_ERROR_STATE_MISMATCH Integer 无效/格式错误的 JSON
JSON_ERROR_CTRL_CHAR Integer 控制字符错误
JSON_ERROR_SYNTAX Integer 语法错误
JSON_ERROR_UTF8 Integer 格式错误的 UTF-8 字符。 PHP 5.3
JSON_ERROR_RECURSION Integer 无效的递归引用值。 PHP 5.5
JSON_ERROR_INF_OR_NAN Integer 无效的 NAN 或 INF 值。 PHP 5.5
JSON_ERROR_UNSUPPORTED_TYPE Integer 类型无效。 PHP 5.5
JSON_ERROR_INVALID_PROPERTY_NAME Integer 属性名称无效。 PHP 7.0
JSON_ERROR_UTF16 Integer 格式错误的 UTF-16 字符。 PHP 7.0
JSON_BIGINT_AS_STRING Integer  
JSON_OBJECT_AS_ARRAY Integer  
JSON_HEX_TAG Integer  
JSON_HEX_AMP Integer  
JSON_HEX_APOS Integer  
JSON_HEX_QUOT Integer  
JSON_FORCE_OBJECT Integer  
JSON_NUMERIC_CHECK Integer  
JSON_PRETTY_PRINT Integer  
JSON_UNESCAPED_SLASHES Integer  
JSON_PARTIAL_OUTPUT_ON_ERROR Integer  
JSON_PRESERVE_ZERO_FRACTION Integer  
JSON_UNESCAPED_LINE_TERMINATORS Integer  
JSON_INVALID_UTF8_IGNORE Integer  
JSON_INVALID_UTF8_SUBSTITUTE Integer  
JSON_THROWN_ON_ERROR Integer