php - json_decode 返回 json 字符串而不是数组

标签 php json ajax

<?php

$json=file_get_contents('php://input',true);
$data = json_decode($json, true);

print_r($data);
?>

给出的输出是 {"EventTitle":"Game","EventBody":"body","EventDate":"20 November, 2016","EventType":"party"}

发布的 Json 数据是:

 {"EventTitle":"Game","EventBody":"body","EventDate":"20 November, 2016","EventType":"party"}

将 json 数据写入变量并将其传递给 json_decode 是可行的,但从“php://input”发布相同数据会返回 JSON 数据而不是关联数组。

最佳答案

看起来@tkausl 是正确的。您收到的 JSON 已经过双重编码。由于它是双重编码的,因此临时解决方案是对其进行双重解码。

$data = json_decode(json_decode($json), true);

但真正的解决方案是弄清楚为什么会这样开始并修复它(如果由您来修复)。

关于php - json_decode 返回 json 字符串而不是数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40728447/

相关文章:

PHP 多个 __toString 方法,在运行时切换

php - Laravel 7 : Why isn't my session cookie getting set in a browser?

php - 我想让用户将图片上传到服务器,但我无法弄清楚如何告诉 $_FILES 文件名应该是什么?

Java从json属性解压缩HTTP GZIP内容

javascript - 如何在 Codeigniter 中使用 jquery Ajax 在行中添加新的动态行?

javascript - 使用 jquery 读取给定 url 的来源

php - 想要使用 SUBSTRING_INDEX 在 mysql 中分割字符串

java - 如何从 JSONObject 获取日期对象

java - org.json.JSONObject 无法转换为 JSONArray

javascript - 通过 AJAX 将 HTML 转换为 PHP 表单输入