在php中获取JSON数组

时间:2019-02-27 01:02:30

标签: javascript php

如何向POST发送JSON请求和main.php数组以返回key_1的值?我下面的当前方法不起作用,我不知道如何解决此问题。

script.js:

var array = {};
array["key_1"] = "obj_1";
array["key_2"] = "obj_2";
array["key_3"] = "obj_3";

var http = new XMLHttpRequest();
http.open("POST", "main.php");
http.onload = function () {
    document.querySelector("p").innerHTML = this.responseText;
}
http.send(array);

main.php:

<?php
    $params = json_decode(file_get_contents("php://input"));
    echo ($params["key_1"]);
?>

index.html:

<html>
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <p></p>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

file_get_contents()不解析内容。您需要通过json_decode()传递值。

<?php
    $params = json_decode(file_get_contents("php://input"), true);
    echo ($params["key_1"]);
?>

答案 1 :(得分:1)

main.php中,使用以下代码:

<?php
    $params = json_decode(file_get_contents("php://input"));
    echo $params->key_1;
?>

解码JSON字符串时,将其转换为stdClass对象。

如果要解码JSON并将其转换为数组,请使用以下代码:

<?php
    $params = json_decode(file_get_contents("php://input"), true);
    echo $params['key_1'];
?>