2025-09-06 23:09:27
大家好,今天小编关注到一个比较有意思的话题,就是关于php 接收json的问题,于是小编就整理了3个相关介绍php 接收json的解答,让我们一起看看吧。
$arr = array( "renovação" ,"automática"); $res = array("res"=>$arr); $res = json_encode($res, JSON_UNESCAPED_UNICODE); echo $res;
1、获取请求参数
$input = file_get_contents("php://input");
$input = json_decode($input,true);
var_dump($input);
2、获取文件中的json
$jsonStr = file_get_contents('src/xx.json');
$jsonObj = json_decode($jsonStr, true);
3、获取接口返回的json(以post请求为例)
function run_curl_json($url, $data, $timeout) {
$data = json_encode($data);
$ch = curl_init($url); //请求的URL地址
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length: ' . strlen($data)));
$ret = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$jsonObj = json_decode($ret, true);
return ['data' => $jsonObj, 'code' => $httpCode];
}
以上三种方式中获取到的都是json字符串,然后通过json_decode将json字符串转为数组。
PHP作为当下主流的脚本语言,因其简单高效的特点备受关注,基于PHP开发的项目也是很多的,可以说PHP是作为Web开发的首选开发语言。但是PHP本身是弱类型语言,所以在某些地方的支持度上也是存在一些问题的,比如对于JSON的处理就存在一定的差异化。
PHP弱类型可能会导致JSON返回时不够标准
PHP它是弱类型的脚本语言,所以在输出方面所有类型默认会被当成String输出。可能有PHP开发者不太理解这句话,举例来说:如果通过PHP从数据库中查询数据,那返回的数据其实都被当成了String类型,即使字段类型是int、double这类的也会被当成String处理。
在这种情况下,不同的开发者写出来的JSON可能就存在差异,比如:
{"name":"张三","age":22}
或
{"name":"张三","age":"22"}
另外在PHP环境下输出对象类型的字段时,也会出现问题,有些时候下会将{}返回成[],比如:
{"name":"张三","info":{}}
或
{"name":"张三","info":[]}
上面例举的这2个例子危害性很大,特别是作为API输出时会让调用方崩溃。
PHP后端如何规范返回JSON?
弱类型语言看似方便容错性高,其实更容易出现Bug,这也是一些安全系数要求高的项目并不会采用PHP这类弱类型语言去开发的原因。
那PHP在对JSON处理这块应该怎么做呢?我的建议就是定义好数据返回模板,然后进行数据填充生成JSON字符串再返回。
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!
json数据怎么样才算规范?
$array=array();
print_r(json_encode($array));
真是怪了,你是看json来开发的,还是看文档开发的?
到此,以上就是小编对于php 接收json的问题就介绍到这了,希望介绍关于php 接收json的3点解答对大家有用。
Copyright © 2005-2025 代潇瑞博客 www.daixiaorui.com All Rights Reserved.
免责声明: 1、本站部分内容系互联网收集或编辑转载,并不代表本网赞同其观点和对其真实性负责。 2、本页面内容里面包含的图片、视频、音频等文件均为外部引用,本站一律不提供存储。 3、如涉及作品内容、版权和其它问题,请在30日内与本网联系,我们将在第一时间删除或断开链接! 4、本站如遇以版权恶意诈骗,我们必奉陪到底,抵制恶意行为。 ※ 有关作品版权事宜请联系客服邮箱:478923*qq.com(*换成@)
渝ICP备2023009091号-21