PHP如何接收JSON?

http://mp.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96%E7%94%A8%E6%88%B7%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF
这个微信公众平台,是不是我的微信页面先get里面提供的这个链接,然后微信那个页面会GET或POST回这个页面给我?如果是的话,我要怎么使用,这个JSON呢?我知道用json_decode(JSON内容)函数,关键是SON内容是什么?

对于json,PHP有对应的方法进行操作。

一般而言,json会以字符串形式传给PHP脚本,一般都是放在$_POST里面,
<?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;追问

json_str是自定义的还是默认的?就我提供的那个链接来讲,要怎么做?POST过来的也是json_str吗?

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-25
<?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="点击">


上面是php接收ajax传来的json实例.

第2个回答  2014-06-24

第三方平台的输出本身就是一个json格式的,你只要把它读到一个变量里,再解码JSON,就可以得到PHP的数据格式了

$str    = file_get_contents($url);
$obj   = json_decode($str);

本回答被提问者和网友采纳