在php数组中转换json字符串的麻烦

时间:2016-10-15 16:50:31

标签: javascript php arrays json ajax

我想在JavaScript中发送一个JSON字符串,然后使用编码php函数将其转换为数组。

一旦用JavaScript转换字符串并用Ajax发送到php页面,我就无法将其转换为数组。

代码。



function goJsonAjaxPhp()
{
    var myObject ={name:"Andreas",surname:"Grech",age:20};
    var str_json = JSON.stringify(myObject);
    var xhr;
    if(window.XMLHttpRequest)
    {
        xhr = new XMLHttpRequest();
    }
    else
    {
        xhr = new ActiveXObject("Microsoft.HMLHTTP");
    }
    xhr.onreadystatechange = handler;
    xhr.open("POST","page_php.php",true);
    xhr.setRequestHeader("Content-type", "application/json");
    xhr.send(str_json);
                                   
    function handler()
    {
        if(xhr.readyState == 4 && xhr.status == 200)
        {
            document.getElementById("idResult").innerHTML= xhr.responseText;
        }
    }
}

<button onclick=goJsonAjaxPhp()> Json Ajax-PHP </button>
<button onclick=goJsonPhp()> Json Only-PHP </button>
<button onclick=goJsonJavascript()> Json Javascript </button>

<div id=idResult></div>
&#13;
&#13;
&#13;

header("Content-Type: application/json;ì");
$str_json = file_get_contents('php://input');
$arrayPHP = (array) json_encode($str_json,TRUE);
var_dump($arrayPHP);

这是php输出

enter image description here

我做错了什么?

1 个答案:

答案 0 :(得分:0)

而不是

$arrayPHP = (array) json_encode($str_json,TRUE);

$arrayPHP = (array) json_decode($str_json,TRUE);