用PHP解码JSON字符串时遇到问题

用PHP解码JSON字符串时遇到问题,php,javascript,json,Php,Javascript,Json,我正在尝试使用JSON将对象数组从JS发送到PHP。我有一系列玩家,如下所示: var player; var players = new Array(); //loop for number of players player = new Object(); player.id = theID; players[i] = player; 然后我的AJAX调用如下所示: JSONplayers = JSON.stringify(players); $.ajax({ type: "POST",

我正在尝试使用JSON将对象数组从JS发送到PHP。我有一系列玩家,如下所示:

var player;
var players = new Array();
//loop for number of players
player = new Object();
player.id = theID;
players[i] = player;
然后我的AJAX调用如下所示:

JSONplayers = JSON.stringify(players);
$.ajax({
type: "POST",
url: "php/ajax_send_players.php",
data: {
    "players" : JSONplayers
}
在PHP端,解码函数如下所示

$players = $_REQUEST['players'];
echo var_dump($players);
$players = json_decode($players);
echo 'players: ' .$players. '--'. $players[0] . '--'. $players[0]->id;
在chrome中调试时,JSON播放器变量在发送前如下所示: JSONplayers:“[{id:“Percipient”},{id:“4”}”

当我在PHP中使用vardump时,它看起来还可以,如下所示: 字符串(40)“[{\'id\':\'Percipient\'},{\'id\':\'4\'}”

但是我无法访问PHP数组,关于从播放器开始的echo语句:输出如下: 玩家:----

没有什么全面的…也许它与数组中的有关,我是新来的,可能缺少一些非常简单的东西。任何帮助都将不胜感激


注意我也尝试了json_decode($players,true)将其作为assoc数组,但得到了类似的结果。

我尝试模拟一些数据:

var message = [
    {id: "90"},
    {"id": 123},
    {"id": 456},
    {"id": 87.5},
    {"id": 123.1}
];
我使用了您的javascript并添加了一个成功处理程序来使用PHP文件的输出:

JSONplayers = JSON.stringify(message);
alert(JSONplayers);
$.ajax({
    type: "POST",
    url: "ajaxTest.php",
    data: {
        "players": JSONplayers
    },
    success: function(data) {
        $('#myId').html(data);
    }
}); 
然后我对你的PHP做了一点修改:

<?php
    $players = $_REQUEST['players'];
    $json = json_decode(stripslashes($players),true);
    foreach($json as $row) {
        echo $row['id'] . '<br />';
    }
?>

这将为每个条目踢出一个新行,并通过其键(id)引用它。

可能的重复项