php - 如何将 JSON 数据转换为数组?
问题描述
来自模板的 API 代码:
$country_array = array();
$country_array['data'] = array();
while($row = $result->fetch(PDO::FETCH_ASSOC))
{
extract($row);
$country_item = array
(
'ID' => $ID,
'Name' => $Name,
'Population' => $Population,
'Area' => $Area,
);
// Push to "data"
array_push($country_array['data'], $country_item);
}
// Turn to JSON and output
echo json_encode($country_array);
JSON数据:
{"data":
[{"ID":"1","Name":"Portugal","Population":"10286263","Area":"92212"},
{"ID":"2","Name":"United Kingdom","Population":"66836327","Area":"242495"}]}
我不确定如何在 PHP 中存储这些数据。
这是我到目前为止所拥有的:
$response = file_get_contents('http://127.0.0.1/100520093/api/post/read.php');
$response = json_decode($response);
echo $response
以上导致错误消息说我无法将类 stdClass 的对象转换为字符串。
遵循W3Schools中的示例会得到“data => Array”。
感谢您提供任何帮助,我仍然是一名业余爱好者,所以如果这是一个过度提问的问题,请放轻松,我找不到与我的特定案例相关的任何内容。
解决方案
默认情况下,json_decode()
将 JSON 对象解码为 PHPStdClass
对象。使用第二个参数true
可以将它们解码为关联数组。
当您尝试回显某些内容时,它会首先转换为字符串。数组仅转换为 word Array
。除非该类为其提供魔术方法,否则无法将对象转换为字符串,因此您会收到错误消息。
相反,使用var_dump()
或print_r()
来显示内容。
$response = file_get_contents('http://127.0.0.1/100520093/api/post/read.php');
$response = json_decode($response, true);
var_dump($response);
推荐阅读
- c - fseek 后将文件指针移回
- python - 如果我有 Jupyter,Sublime Text 如何融入工作流程?
- excel - 美国惯例在电子表格功能(Libre、Google Sheets 等)中有所不同
- c++ - 如何修复在代码的某个部分引发的异常?
- kubernetes - 将 aspnetcore webapi 部署到 minikube 时出错
- python - CatBoost LossFunctionChange 中的负特征重要性值
- c - 如何打开我在 dev 中创建的文件并在用户空间程序中使用它?
- azure - 是否可以为请求请求比容器/帐户的默认一致性级别更强的一致性级别?
- image - BufferedImages 数组导致高内存使用
- c++ - 是否可以将结构与条件语句完全一样的字符串转换为可以读取和操作的语句?