php中json相关函数预定义常量列表
下列常量由此扩展定义,且仅在此扩展编译入PHP或在运行时动态载入时可用.
以下常量表示了json_lasterror()函数,或jsonException类中的电码变量所返回的错误类型.
JSON_ERROR_NONE (整型)
没有错误发生.自PHP5.3.0起生效。
JSON_ERROR_DEPTH (整型)
到达了最大堆栈深度.自PHP5.3.0起生效。
JSON_ERROR_STATE_MISMATCH (整型)
出现了下溢(下流)或者模式不匹配.自PHP5.3.0起生效。
JSON_ERROR_CTRL_CHAR (整型)
控制字符错误,可能是编码不对.自PHP5.3.0起生效。
JSON_ERROR_SYNTAX (整型)
语法错误.自PHP5.3.0起生效。
JSON_ERROR_UTF8 (整型)
异常的UTF-8字符,也许是因为不正确的编码.自PHP5.3.3起生效。
JSON_ERROR_RECURSION (整型)
传递给Json_encode()函数的对象或数组包含了递归引用,导致无法被编码.如果打开了JSON_PARTIAL_OUTPUT_ON_ERROR选项,则牵涉到递归引用的数据会转换成NULL后返回.自PHP5.5.0起生效。
JSON_ERROR_INF_OR_NAN (整型)
传递给Json_encode()函数的参数中包含了NAN 或 INF、导致编码出错.如果打开了JSON_PARTIAL_OUTPUT_ON_ERROR选项,则牵涉到对应不可编码的数字,会转换成数字0后返回.自PHP5.5.0起生效。
JSON_ERROR_UNSUPPORTED_TYPE (整型)
传递了不支持的数据类型给Json_encode()函数,比如资源(资源)...如果打开了JSON_PARTIAL_OUTPUT_ON_ERROR选项,则对于不支持的数据类型,会转换成NULL后返回.自PHP5.5.0起生效。
JSON_ERROR_INVALID_PROPERTY_NAME (整型)
以\u 0000字符开头的键在传递给Json_decode()将JSON对象解码为PHP对象时。可从PHP 7.0.0中获得。
JSON_ERROR_UTF16 (整型)
传递给的JSON字符串中包含的Unicode转义中的单个未配对UTF-16代理项json_encode()。可从PHP 7.0.0中获得。
下面的常量可以和json_decode()的Form选项结合使用.
JSON_BIGINT_AS_STRING (整型)
将大数字编码成原始字符原来的值.自PHP5.4.0起生效。
JSON_OBJECT_AS_ARRAY (整型)
将JSON对象解码为PHP数组。可以通过调用json_decode()第二个参数等于TRUE。可从PHP 5.4.0中获得。
下面的常量可以和json_encode()的Form选项结合使用.
JSON_HEX_TAG (整型)
所有的<和>转换成\u003C和\u003E.自PHP5.3.0起生效。
JSON_HEX_AMP (整型)
所有的&转换成\u 0026。自PHP5.3.0起生效。
JSON_HEX_APOS (整型)
所有的‘转换成\u 0027。自PHP5.3.0起生效。
JSON_HEX_QUOT (整型)
所有的“转换成\u 0022.自PHP5.3.0起生效。
JSON_FORCE_OBJECT (整型)
使一个非关联数组输出一个类(Object)而非数组.在数组为空而接受者需要一个类(Object)的时候尤其有用.自PHP5.3.0起生效。
JSON_NUMERIC_CHECK (整型)
将所有数字字符串编码成数字(数字)自PHP5.3.3起生效。
JSON_PRETTY_PRINT (整型)
用空白字符格式化返回的数据.自PHP5.4.0起生效。
JSON_UNESCAPED_SLASHES (整型)
不要编码/...自PHP5.4.0起生效。
JSON_UNESCAPED_UNICODE (整型)
以字面编码多字节Unicode字符(默认是编码成\uXXXX)。自PHP5.4.0起生效。
JSON_PARTIAL_OUTPUT_ON_ERROR (整型)
用一些不可编码的值代替失败。可从PHP 5.5.0中获得。
JSON_PRESERVE_ZERO_FRACTION (整型)
确保浮子值始终编码为浮点值。可从PHP 5.6.6获得。
JSON_UNESCAPED_LINE_TERMINATORS (整型)
在下列情况下,线路终止符将保持未转义。JSON_UNESCAPED_UNICODE供应。它使用与PHP7.1之前相同的行为,没有这个常量。可从PHP 7.1.0中获得。
下面的常量可以和json_decode() 及 json_encode()的Form选项结合使用.
JSON_INVALID_UTF8_IGNORE (整型)
忽略无效的UTF-8字符.PHP 7.2.0版。
JSON_INVALID_UTF8_SUBSTITUTE (整型)
将无效的UTF-8字符转换为\0 xfffd(Unicode字符“替换字符”),在PHP 7.2.0中可用。
JSON_THROW_ON_ERROR (整型)
抛出JsonException如果发生错误,而不是设置全局错误状态,则使用json_lasterror()和json_lasterror_msg(). JSON_PARTIAL_OUTPUT_ON_ERROR优先于JSON_THROW_ON_ERROR。PHP 7.3.0版。
同时使用两个常量
例如json_encode通常只能传入一个常量,如果同时使用2个常量怎么办?如下:
JSON_UNESCAPED_UNICODE(中文不转为unicode ,对应的数字 256)
JSON_UNESCAPED_SLASHES (不转义反斜杠,对应的数字 64)
JSON_UNESCAPED_UNICODE + JSON_UNESCAPED_SLASHES = 320
使用方法:json_encode($arr,320)