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

如何用PHP解析JSON文件?

如何用PHP解析JSON文件?

呼唤远方 2019-05-22 14:46:46
如何用PHP解析JSON文件?我试图使用PHP解析JSON文件。但我现在被困住了。这是我的JSON文件的内容:{    "John": {        "status":"Wait"    },    "Jennifer": {        "status":"Active"    },    "James": {        "status":"Active",        "age":56,        "count":10,        "progress":0.0029857,        "bad":0    }}这是我到目前为止所尝试的:<?php$string = file_get_contents("/home/michael/test.json");$json_a = json_decode($string, true);echo $json_a['John'][status];echo $json_a['Jennifer'][status];但是,因为我不知道的名字(例如'John','Jennifer')和所有可用键和值(如'age','count')事前,我想我需要创建一些foreach循环。我会很感激这个例子。
查看完整描述

5 回答

?
湖上湖

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

要迭代多维数组,可以使用RecursiveArrayIterator

$jsonIterator = new RecursiveIteratorIterator(
    new RecursiveArrayIterator(json_decode($json, TRUE)),
    RecursiveIteratorIterator::SELF_FIRST);foreach ($jsonIterator as $key => $val) {
    if(is_array($val)) {
        echo "$key:\n";
    } else {
        echo "$key => $val\n";
    }}

输出:

John:status => WaitJennifer:status => ActiveJames:status => Activeage => 56count => 10progress => 0.0029857bad => 0

在键盘上运行


查看完整回答
反对 回复 2019-05-22
?
繁星coding

TA贡献1797条经验 获得超4个赞

最优雅的解决方案:


$shipments = json_decode(file_get_contents("shipments.js"), true);

print_r($shipments);

请记住,json文件必须以UTF-8编码而不使用BOM。如果文件有BOM,则json_decode将返回NULL。


或者:


$shipments = json_encode(json_decode(file_get_contents("shipments.js"), true));

echo $shipments;


查看完整回答
反对 回复 2019-05-22
?
潇湘沐

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

没有人指出你开始的“标签”是错误的,完全超出我的范围。您正在使用{}创建对象,而可以使用[]创建数组。


[ // <-- Note that I changed this

    {

        "name" : "john", // And moved the name here.

        "status":"Wait"

    },

    {

        "name" : "Jennifer",

        "status":"Active"

    },

    {

        "name" : "James",

        "status":"Active",

        "age":56,

        "count":10,

        "progress":0.0029857,

        "bad":0

    }

] // <-- And this.

通过此更改,json将被解析为数组而不是对象。使用该数组,您可以执行任何操作,例如循环等。


查看完整回答
反对 回复 2019-05-22
  • 5 回答
  • 0 关注
  • 2011 浏览

添加回答

举报

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