A. php怎么接收json数据格式
PHP接收JSON格式的数据
在API服务中,目前流行采用json形式来交互。
给前端调用的接口输出Json数据,这个比较简单,只需要组织好数据,用json_encode($array) 转化一下,前端就得到json格式的数据。
接收前端提交的json数据稍微复杂一点,原因是:PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型。因此,对型如text/xml 或者 soap 或者 application/octet-stream 和application/json格式之类的内容无法解析,如果用$_POST数组来接收就会失败!
此时可以使用$GLOBALS['HTTP_RAW_POST_DATA'] 或 file_get_contents('php://input') 来获取提交的数据
查看手册,可以发现$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST的区别:
$_POST:通过 HTTP POST 方法传递的变量组成的数组,是自动全局变量。
$GLOBALS['HTTP_RAW_POST_DATA'] :总是产生 $HTTP_RAW_POST_DATA 变量包含有原始的 POST 数据。此变量仅在碰到未识别 MIME 类型的数据时产生。$HTTP_RAW_POST_DATA 对于 enctype="multipart/form-data" 表单数据不可用。也就是说基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一样的。但是如果post过来的数据不是PHP能够识别的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收,比如 text/xml 或者 soap 等等。
B. 在PHP中怎么接收post过来的JSON数据
var allUnivList = [{
"id": 1,
"univs": [{
"id": 1001,
"name": "清华大学"
},
{
"id": 1002,
"name": "北京大学"
}],
"country_id": 0,
"name": "北京"
}]
//比如你传递的是上面这个JSON格式,在PHP端,举个用JQ提交的例子:
$.ajax({
url: "test.php",
type: "post",
data: { allcity: allUnivList},
success: function (data) {
alert(data);
},
error: function () {
alert("系统异常!");
}
});
C. php 怎么接收前端传来的json数据
<?php
header("Content-type:text/html;charset=utf-8");
if($_POST){
$d = $_POST['data'];//这里获取的直接就是数组了,不需要用到json_decode
echo $d['doing'];
//print_r($d);
exit;
}
?>
<script src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#xx").click(function(){
var url = "test.php";
var str ="{'doing':'createvote','type':'type','num':'num','votetheme':'votetheme','creater':'loginname'}";//json格式字符串
var data = eval('('+str+')');//转换成数组对象,不加这步,那么PHP获取的是字符串。
$.post(url, {'data': data}, function(res) {//注意jquery的$.post的第2个参数必须是键值对形式
alert(res);
});
});
});
</script>
<input id="xx" type="button" value="点击">
D. php如何发送和接收JSON数据
对于json,PHP有对应的方法进行操作。
一般而言,json会以字符串形式传给PHP脚本,一般都是放在$_POST里面,
14
<?php
// 接收
$json_parameter = $_POST['json_str'];
// 处理, 变成数组
$array = json_decode($json_parameter);
// PHP 把数组数据变成json格式字符串,发给页面
$demo = array(
'key' => 'value',
'key2' => 'value2'
);
$demo_json = json_encode($demo); // 格式是{"key":"value","key2":"value2"}
echo $demo_json;
E. 在PHP中怎么接收post过来的JSON数据
$jsonData=$_POST['jsonData'];//接收数据
$arrayData=json_decode($jsonData,true);//转码为数组
var_mp($arrayData);//打印结果
F. php 怎么接收前端传来的json数据
header("Content-type:text/html;charset=utf-8");
if($_POST){
$d = $_POST['data'];//这里获取的直接就是数组了,不需要用到json_decode
echo $d['doing'];
//print_r($d);
exit;
}
?>
G. php如何接收js传来的json对象
你无法传json对象到服务端交互的,要传的只是一个字符串(Json),是个字符串!
你发的代码里是json的解析,没有多大意义,你在php页面这样调试
var_mp($_REQUEST);//输出所有数据,如果存在的话,你会看到那个参数是啥
另外,json格式,主要方便javascript解析的,而不是php擅长的内容,多数情况下,是PHP返回json数据给js.
php的数组操作函数有主要的两个json_encode()与json_decode();
从你的代码中,我不确定你用何种方式通信,ajax?
我看你用到了jQuery,那里面有个ajax,方式类似这样的:
$.ajax({
type:"post",//method;canbegetwithpostorrequest
url:"/mySever.php",//phpurl
error:function(){alert('Error');},
data:{
data1:name,
data2:age,
},
datatype:"json",//jsonback
timeout:5000,
success:function(msg)
{
//eval(msg);//parasehere
}
});
returnfalse;
}
H. php后台如何接收安卓传来的json数据,json名为object
将接受过来的json转换成php数组格式。
$json=接收来的json字符串;
$json=json_decode($json,true);//这里转换成数组然后就是操作数组的方士去读取了。
echo $json['id'];
I. php获得api返回的json数据后,如何解析
首先你需要使用对方约定方式获取,然后考虑是否使用缓存,最后获取到数据后使用json_decode函数解析成数组格式,接下来就是自己的逻辑代码了。