2

我已经在这工作了好几个小时,我一辈子都无法弄清楚如何解码这个 json 文件。我正在使用 gnip 来捕获 Twitter 数据。Gnip 以 JSON 格式返回数据。我需要一种在 php 中对此进行解码并能够访问每个 json 对象的方法。我以前曾使用过 json,但我无法将注意力集中在这个问题上。我在简单测试中遇到的一件有趣的事情是,如果我有这样的 json 代码

{"foo":123}

我可以使用 json_decode() 函数对此进行解码。但是如果json格式是这样的

{

 "foo":123


}

它不解码:/

这是json代码的链接:

https://dl-web.dropbox.com/get/Public/myjson.json?w=b7ad8e2c

如果此链接不起作用,则应该

https://dl.dropbox.com/u/57604377/myjson.json

我试图像这样访问它。

我将所有这些 json 代码放在一个文件中,然后读取文件并将内容放入一个名为 $json 的变量中,

$obj = json_decode($json)

我尝试了这两种方法来访问初学者的“id”值

echo $obj->id

echo $obj->{'id'}

它不返回任何东西

我希望你们中的一些聪明人能给我一些见解。

4

2 回答 2

1

在名为 json.php 的文件中给出此代码:

<?
  $json = file_get_contents("php://stdin");

  $obj = json_decode($json);
  var_dump($obj);

  // Different echos go here
?>

并在您的测试文件中查找

cat multiline_gnip.json | php json.php

然后对我来说以下工作:

echo $obj->id
echo $obj->{id}
echo $obj->{'id'}

将 json_decode 行更改为:

$obj = json_decode($json, true);

给我一个关联数组,然后这个工作:

echo $obj["id"]

介意分享一些你用来解析这个的代码吗?

为了完整起见,这里是我的 php --version

带有 Suhosin-Patch (cli) 的 PHP 5.3.15(构建时间:2012 年 8 月 24 日 17:45:44) 版权所有 (c) 1997-2012 The PHP Group Zend Engine v2.3.0,版权所有 (c) 1998-2012 Zend Technologies

(免责声明:我为 Gnip 工作)

于 2012-11-11T23:15:57.783 回答
0

您应该使用 php cli 来测试您的函数和数据。从那里发现你的错误应该相当简单。

于 2012-11-12T01:15:01.313 回答