当前位置: 首页 > 面试题库 >

使用file_get_contents从JSON到PHP数组

谢财
2023-03-14
问题内容

我正在尝试使用杂志api获取以下json内容。json的输出是这样的。我希望下面的json转换为php数组。

{
"bpath": "http://www.sampledomain.com/",
"clist": [
    {
        "cid": "11",
        "display_type": "grid",
        "ctitle": "abc",
        "acount": "71",
        "alist": [
            {
                "aid": "6865",
                "adate": "2 Hours ago",
                "atitle": "test",
                "adesc": "test desc",
                "aimg": "",
                "aurl": "?nid=6865",
                "weburl": "news.php?nid=6865",
                "cmtcount": "0"
            },

            {
                "aid": "6857",
                "adate": "20 Hours ago",
                "atitle": "test1",
      "adesc": "test desc1",
      "aimg": "",
                "aurl": "?nid=6857",
                "weburl": "news.php?nid=6857",
                "cmtcount": "0"
            }
        ]
    },
    {
        "cid": "1",
        "display_type": "grid",
        "ctitle": "test1",
  "acount": "2354",
        "alist": [
            {
                "aid": "6851",
                "adate": "1 Days ago",
                "atitle": "test123",
      "adesc": "test123 desc",
      "aimg": "",
                "aurl": "?nid=6851",
                "weburl": "news.php?nid=6851",
                "cmtcount": "7"
            },
            {
                "aid": "6847",
                "adate": "2 Days ago",
                "atitle": "test12345",
      "adesc": "test12345 desc",
      "aimg": "",
                "aurl": "?nid=6847",
                "weburl": "news.php?nid=6847",
                "cmtcount": "7"
            }
        ]
    },

]
}

我的代码如下所示。

<?php 
$json_url = "http://api.testmagazine.com/test.php?type=menu";
$json = file_get_contents($json_url);
$data = json_decode($json, TRUE);
echo "<pre>";
print_r($data);
echo "</pre>";
?>

上面的代码返回一个空数组。:(如何将上述JSON转换为php对象数组。我很无奈。

谢谢哈恩


问题答案:

您提供的JSON示例无效。使用此JSON验证程序http://jsonlint.com/在线进行检查。您需要删除第59行上的多余逗号。

一个拥有有效json的人,可以使用此代码将其转换为数组。

json_decode($ json,true);

Array
(
    [bpath] => http://www.sampledomain.com/
    [clist] => Array
        (
            [0] => Array
                (
                    [cid] => 11
                    [display_type] => grid
                    [ctitle] => abc
                    [acount] => 71
                    [alist] => Array
                        (
                            [0] => Array
                                (
                                    [aid] => 6865
                                    [adate] => 2 Hours ago
                                    [atitle] => test
                                    [adesc] => test desc
                                    [aimg] => 
                                    [aurl] => ?nid=6865
                                    [weburl] => news.php?nid=6865
                                    [cmtcount] => 0
                                )

                            [1] => Array
                                (
                                    [aid] => 6857
                                    [adate] => 20 Hours ago
                                    [atitle] => test1
                                    [adesc] => test desc1
                                    [aimg] => 
                                    [aurl] => ?nid=6857
                                    [weburl] => news.php?nid=6857
                                    [cmtcount] => 0
                                )

                        )

                )

            [1] => Array
                (
                    [cid] => 1
                    [display_type] => grid
                    [ctitle] => test1
                    [acount] => 2354
                    [alist] => Array
                        (
                            [0] => Array
                                (
                                    [aid] => 6851
                                    [adate] => 1 Days ago
                                    [atitle] => test123
                                    [adesc] => test123 desc
                                    [aimg] => 
                                    [aurl] => ?nid=6851
                                    [weburl] => news.php?nid=6851
                                    [cmtcount] => 7
                                )

                            [1] => Array
                                (
                                    [aid] => 6847
                                    [adate] => 2 Days ago
                                    [atitle] => test12345
                                    [adesc] => test12345 desc
                                    [aimg] => 
                                    [aurl] => ?nid=6847
                                    [weburl] => news.php?nid=6847
                                    [cmtcount] => 7
                                )

                        )

                )

        )

)


 类似资料:
  • 我试图使用一个代码,将数据从一个mySQL数据库绑定到一个变量的数据,把所有产生的$x到一个PHP数组,最后将其转换为JSON格式。然后,我将JSON转换为javascript来处理来自数据库的数据。 请查看我的代码: 我的问题是,为什么页面将其显示为输出,而不将数据传输到阵列 "准备("SELECT x从数据")) { $stmt-

  • 问题内容: PHP手册上的示例显示了如何使用流上下文发送cookie。这是摘录: 您如何发送多个cookie?像#1或#2,还是什么? #1 #2 问题答案: #3

  • 问题内容: 我正在使用PHP的函数来获取URL的内容,然后通过变量处理标头。 现在的问题是某些URL需要将一些数据发布到URL(例如,登录页面)。 我怎么做? 我意识到使用stream_context我可以做到这一点,但我并不完全清楚。 谢谢。 问题答案: 使用发送HTTP POST请求并不难,实际上:正如您所猜测的,必须使用参数。 在此页面的PHP手册中提供了一个示例:HTTP上下文选项 (引用

  • 本文向大家介绍php中file_get_contents()函数用法实例,包括了php中file_get_contents()函数用法实例的使用技巧和注意事项,需要的朋友参考一下 我们先来看一下php中的 file_get_contents()函数的语法 filename是文件或URL的名称。 include_path如果启用,则在include_path中搜索文件 context这是用于修改流的

  • 问题内容: 访问REST API时,这两段代码有何不同? 和 从以下两个方面判断,它们都产生相同的结果 问题答案: 是一个简单的螺丝刀。非常适合简单的GET请求,其中标头,HTTP请求方法,超时,cookiejar,重定向和其他重要内容无关紧要。 带有流上下文或带有setopt的cURL 的Powerdrill带有您可以想到的每一个细节。

  • 本文向大家介绍PHP readfile与file_get_contents,包括了PHP readfile与file_get_contents的使用技巧和注意事项,需要的朋友参考一下 “ readfile”函数是PHP中的内置函数,可将文件直接读取到输出缓冲区中。文件名作为参数传递给函数。它返回在成功读取数据的情况下读取的字节数。否则返回FALSE- 示例 输出结果 这将产生以下输出- “ fil