您现在的位置是:首页 > cms教程 > WordPress教程WordPress教程

WordPress开发中JSON处理相关函数大全

邬肖任2023-07-18WordPress教程已有人查阅

导读JSON处理是WordPress开发中的经常需要处理的一项工作,为此WordPress 定义了一堆JSON处理的函数,下面由WordPress教程栏目给大家做一下统一的介绍。

JSON处理是WordPress开发中的经常需要处理的一项工作,为此WordPress 定义了一堆JSON处理的函数,下面由WordPress教程栏目给大家做一下统一的介绍。

wp_json_encode

编码成 JSON,并且进行一些完整性检查。

wp_json_encode( $data, $options = 0, $depth = 512 )

简单说下 WordPress 引进这个函数的原因:

首先不同 PHP 版本 json_encode 函数支持不同的参数。PHP 5.3 之前只支持 一个参数 $data,PHP 5.3 引进了 $options 参数,PHP 5.5 又引进了 $depth 参数。所以 WordPress 适配不同版本的 PHP,wp_json_encode 都支持三个参数,兼容不同版本的 PHP。

在 json_encode 之前,wp_json_encode 使用函数 _wp_json_prepare_data 对数据进行清理,如果 boolean,integer,double,string,NULL 这些类型,直接返回,如果数组,继续使用 _wp_json_prepare_data 函数对数组中的每个元素进行清理,如果是对象,如果该对象的 class 实现了 JsonSerializable 接口,则返回 $data = $data->jsonSerialize(),否则,继续使用 _wp_json_prepare_data 对对象中的每个属性进行清理。

然后使用 json_encode 进行编码,如果不成功,则使用 _wp_json_sanity_check 对数据进行完整性处理,最后再使用 json_encode 进行编码。_wp_json_sanity_check 主要使用函数 _wp_json_convert_string 对数据进行深度 UTF-8 检测和转换。

所以建议使用 wp_json_encode 对变量进行 JSON 编码,它的可靠性更高。

wpjam_json_encode
wp_json_encode( $data, $options = JSON_UNESCAPED_UNICODE, $depth = 512 )

PHP5.4 JSON 新增了一个选项:JSON_UNESCAPED_UNICODE,故名思议:不要编码成 Unicode,让中文更可读。

所以我们写了一个 wpjam_json_encode 函数,相比 wp_json_encode,就是将 $options 参数默认值设置为 JSON_UNESCAPED_UNICODE,这样直接使用 wpjam_json_encode($data),中文就不会被编码成 unicode,更可读。

只要你安装 WPJAM Basic 插件,你的 WordPress 就会有这个函数。

wp_send_json

直接发送 JSON 数据。

wp_send_json( $response, $status_code = null )

他首先输出 application/json 的 Content-Type 头,如果 $status_code 不为空,则输出 $status_code 的状态码。

然后调用 wp_json_encode 对数据进行编码。

wpjam_send_json

wpjam_send_json( $response, $status_code = null )

同样为了能够 JSON 编码之后,中文更可读,我们也写了 wpjam_send_json 函数,它和 wp_send_json 几乎一致,只是调用对数据进行编码的函数是 wpjam_json_encode。

另外如果传入的数据是 WP_Error 的实例,那么 wpjam_send_json 直接输出 errcode 和 errmsg JSON。如果没有设置 errcode,则 wpjam_send_json 自动加上 errcode=>0

安装 WPJAM Basic 插件,你的 WordPress 就会有这个函数。

wp_send_json_success 和 wp_send_json_error

WordPress 还提供 wp_send_json_success 和 wp_send_json_error 两个函数:

wp_send_json_success( $data = null, $status_code = null ) wp_send_json_error( $data = null, $status_code = null )

wp_send_json_success 先输出 success 为 true,然后把数据 $data 放到 data 里面输出。wp_send_json_error 则会判断 $data 是否为 WP_Error 实例,如果是,则输出 code 和 message 的数组。我们实现的 wpjam_send_json 已经能够自动化处理这些错误了。

wp_is_json_request

判断当前请求是不是 JSON 请求,或者返回 JSON 结果,这个函数没有参数,直接使用:

wp_is_json_request()

它通过判断 $_SERVER['HTTP_ACCEPT'] 中含有 application/json,或者 $_SERVER['CONTENT_TYPE'] 等于 application/json。

wp_is_jsonp_request

判断当前请求是不是 JSONP 请求,或者返回 JSONP 结果,这个函数没有参数,直接使用:

wp_is_jsonp_request()

它首先判断 $_GET['_jsonp'] ,是否存在,然后通过函数 wp_check_jsonp_callback 判断它的值是否合法。

wp_check_jsonp_callback

判断 JSONP callback 是不是一个一个合法的 JavaScript callback 函数:

wp_check_jsonp_callback( $callback )

合法的 JavaScript callback 函数只能数字加字符,以及英文点号。

本文标签:

很赞哦! ()

相关源码

  • (自适应响应式)电子数码科技产品介绍带留言网站模板下载为电子产品企业设计的展示系统,集成智能产品对比器、参数规格表和展示模块。支持消费电子、智能设备等多级分类展示,内置产品技术参数数据库。查看源码
  • (自适应)帝国cms7.5文章新闻博客整站源码( 带会员中心)本模板基于帝国CMS内核开发,为新闻资讯、个人博客及作品展示类网站设计。采用响应式布局技术,确保在手机、平板和电脑等不同设备上都能获得良好的浏览体验。查看源码
  • (自适应响应式)家电维修清晰服务网站pbootcms模板免费下载本模板基于PbootCMS内核开发,为维修服务类企业打造,特别适合家电维修、设备维护等行业使用。通过简洁直观的界面设计,帮助企业快速搭建专业级服务平台,实现线上业务高效管理。查看源码
  • (自适应响应式)APP应用程序软件介绍落地页源码免费下载该模板为营销技术从业者设计,提供专业的内容展示平台。采用响应式布局,适配软件介绍、APP推广等营销场景,通过可视化后台可快速搭建符合行业特性的展示网站。查看源码
  • (PC+WAP)绿色产品环保设备垃圾桶厂家公司网站pbootcms模板为垃圾桶生产商、环保设备企业打造的高端响应式门户模板,基于PbootCMS开源内核深度开发。采用HTML5自适应架构,无缝实现PC与手机端数据实时同步与交互优化查看源码
  • (PC+WAP)聚氨酯粉末涂料防腐耐用材料粘合剂网站源码下载为化工涂料企业设计的展示系统,集成产品技术参数库、颜色样板展示器和配方查询模块。支持粉末涂料、环氧树脂等多类产品分类展示查看源码
分享笔记 (共有 篇笔记)
验证码: