PHP (AJAX) 的对象数组

Array of objects for PHP (AJAX)

我一直在努力将 对象数组 转换为 JSON 或任何其他 PHP 可读格式,以便我可以通过 AJAX.

我正在使用 localStorage 并将一个对象保存到其中,我使用

保存它
JSON.stringify(data)

现在,当我遍历所有 localStorage 数据时,我使用以下代码将其添加到一个数组中

var locations = new Array();
for(var i = 0; i < localStorage.length; i++){
    locations[i] = JSON.parse(localStorage.getItem(localStorage.key(i)));
}

最终结果如下所示。

这是我的 $.ajax 请求

$.ajax({
    type: "POST",  
    url: "store.php",
    dataType: "json", 
    data: locations,
    success: function(data) {
        console.log(data);
    }
});

唯一的问题是我似乎无法将其转换为可读格式以发送至 PHP

有什么线索吗?谢谢!

将您的 post 数据设为对象。

$.ajax({
    type: "POST",  
    url: "store.php",
    dataType: "json", 
    data: {location: locations},
    success: function(data) {
        console.log(data);
    }
});

然后在您的 PHP 上:print($_POST['location']);

您还应该能够直接从 localStorage 传递内容——无需从中构建数组。

JSON.stringify()形成的数据可以通过$.ajax发送并由PHP解释。

你也可以这样简化。

$.post('store.php', {location: locations}, function(data) {
    console.log(data);
});

您可以使用 PHP 的输入流来读取您的数据:

$json = file_get_contents('php://input');
$array = json_decode($json);

有关 PHP 的 I/O 流的详细信息,请参阅 http://php.net/manual/en/wrappers.php.php