使用php从gnip解码json

时间:2012-11-08 08:29:59

标签: php json

我已经在这几个小时了,因为我的生活无法弄清楚如何解码这个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'}

它不会返回任何内容

我希望你们中的一些有才能的人能够对我有所了解。

2 个答案:

答案 0 :(得分: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

PHP 5.3.15与Suhosin-Patch(cli)(内置:2012年8月24日17:45:44) 版权所有(c)1997-2012 PHP小组 Zend Engine v2.3.0,版权所有(c)1998-2012 Zend Technologies

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

答案 1 :(得分:0)

你应该使用php cli测试你的功能&amp;数据。 从那里发现你的错误应该是相当简单的。