Foreach json 输出并存储在变量中

我正在尝试从 json 代码中获取结果。我已经在 jsonlint 检查了 json 结果并且它已经过验证。


我这样做:


$result = curl_exec($curl);

if(!$result){die("Connection Failure");}

curl_close($curl);

然后当我做 echo $result 这是结果:


{"vat":{"640252":{"name":"0%","percentage":"0.00","invoice_type":"2","vat_code":"5B2","available":"1 "},"640258":{"name":"0%","percentage":"0.00","invoice_type":"1","vat_code":"1E1","available":"1"}, "640256":{"name":"21%","percentage":"21.00","invoice_type":"1","vat_code":"1A2","available":"1"}}}


当我这样做时,它确实显示了增值税代码 640252 的名称:


$result2 = json_decode($result, true);

echo $result2['vat']['640252']['name'];

但是我无法通过 foreach 浏览 json。首先想创建一个带有 id 的变量(如 640252)和一个带有百分比的变量,并在 foreach 中回显它们。


我已经从 Stackoverflow 尝试了很多东西,但所有的 json 输出似乎都与我的输出不同。


我希望有人能在正确的方向上帮助我。


慕村9548890
浏览 140回答 3
3回答

慕勒3428872

原因是,在解码 json 字符串后,vat 是一个带有值数组的键。只需按照以下示例迭代增值税属性。$data = json_decode($result, true);foreach ($data['vat'] as $id => $item) {&nbsp; &nbsp; echo "<pre>";&nbsp; &nbsp; var_dump($id, $item);&nbsp; &nbsp; echo "</pre>";}希望有帮助。

蓝山帝景

<?php$json = '... lots of JSON here ...';$arr = json_decode($json, true);foreach ($arr['vat'] as $id => $item) {&nbsp; &nbsp; echo "$id -> {$item['name']}\n";}以您的 JSON 为例,这是我得到的输出:640252 -> 0%640258 -> 0%640256 -> 21%如果您不需要 ID(例如640252),您可以这样做:foreach ($arr['vat'] as $item) {
打开App,查看更多内容
随时随地看视频慕课网APP