为了账号安全,请及时绑定邮箱和手机立即绑定

用PHP解析JSON

用PHP解析JSON

HUWWW 2019-11-19 11:00:19
我正在尝试从Google购物API中提取数据。我能够成功下载数据,但是在使用PHP解析数据时遇到了麻烦。我仍在学习,但是我似乎在多维数组方面遇到问题。我使用捕获JSON $json = json_decode($data);。以下只是呼应外部数组,但我不能从内部数组中提取:foreach($json as $key => $value) {  echo $key . " : " . $value;}如果我想获取每种产品的“标题”,“描述”,“品牌”和“可用性”,我将如何解析?
查看完整描述

3 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

如果我是你,我会将JSON解析为数组而不是对象。这可以通过执行以下操作来完成:


$json = json_decode($data, true);

通过在json_decode中包含第二个参数(值为true),您将获得一个数组。然后,您可以执行以下操作:


echo '<pre>';

print_r($json);

exit;

这将使您对数据的数组结构以及如何访问所需的信息有所了解。例如,要提取每个项目的标题,品牌和描述,请执行以下操作:


foreach($json['items'] as $item) {

    echo 'Title: ' . $item['product']['title'] . '<br />';

    echo 'Brand: ' . $item['product']['brand'] . '<br />';

    echo 'Description: ' . $item['product']['description'] . '<br />';

}

为了获得可用性,再次使用print_r()对阵列进行转储,并找出从阵列访问阵列的最佳方法。


查看完整回答
反对 回复 2019-11-19
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

我们可以这样解析JSON Array,


<?php

$json = "[{\"name\":\"user1\",\"id\":\"940\"},{\"name\":\"user2\",\"id\":\"949\"}]";

$dec = json_decode($json);


for($idx = 0; $idx < count($dec); $idx++){

    $obj = (Array)$dec[$idx];

    echo $obj["name"];

}

?>

和类似的JSON对象这样,


<?php

$json = "{\"name\":\"user1\",\"id\":\"940\"}";

$dec = (Array)json_decode($json);


echo $dec["name"];

?>


查看完整回答
反对 回复 2019-11-19
  • 3 回答
  • 0 关注
  • 724 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信