javascript - php 数组中转换 json 字符串时出现问题

标签 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>

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

我做错了什么?

最佳答案

而不是

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

尝试

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

关于javascript - php 数组中转换 json 字符串时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40061718/

相关文章:

PHP fatal error : Call to a member function find() on a non-object however my function work

javascript - 在 CANVAS 上绘制图像数组

Javascript(动态)插入数组,然后将所有元素移动到+1下面

php - 生成可预测的随机数组

javascript - 基于值/对的 Handlebars.js JSON 设置类

javascript - 延迟加载图像和 SEO

php - API 在 WordPress 中上传文件

php 文件被 alexa 爬虫执行并导致问题!

javascript - jquery addClass 未按正确的顺序应用

javascript - 交换数组中的两个值