2

私は何時間もこれに取り組んできましたが、このjsonファイルをデコードする方法を一生理解できません。gnip を使用して Twitter データをキャプチャしています。Gnip はデータを JSON 形式で返しています。これをphpでデコードし、各jsonオブジェクトにアクセスできるようにする方法が必要です。以前にjsonを使用したことがありますが、これについて頭を悩ませることはできません。簡単なテスト中に出会った面白いことの 1 つは、このような 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'ing

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 with Suhosin-Patch (cli) (ビルド: 2012 年 8 月 24 日 17:45:44) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0、Copyright (c) 1998-2012 Zend Technologies

(免責事項: 私は Gnip で働いています)

于 2012-11-11T23:15:57.783 に答える
0

関数とデータをテストするには、php cli を使用する必要があります。そこからバグを見つけるのはかなり簡単です。

于 2012-11-12T01:15:01.313 に答える