2012-02-22 8 views
1

私はFlickrからいくつかのjsonを取得しようとしており、foreachループを使っていくつかの特定のデータを表示しています。 しかし、それが返すjsonは異なったフォーマットになっていて、それはうまくいきません。クリーンアップする必要がありFlickr JSON feed

json_decode(ereg_replace("^jsonFlickrFeed\((.*)\)$", "\\1", stripslashes(strip_tags($STRING_YOU_GOT_BACK_FROM_FLICKR)))); 

:ありがとう

jsonFlickrFeed({ 
     "title": "Recent Uploads tagged un", 
     "link": "http://www.flickr.com/photos/tags/un/", 
     "description": "", 
     "modified": "2012-02-22T14:48:07Z", 
     "generator": "http://www.flickr.com/", 
     "items": [ 
     { 
      "title": "PLAYA SOLITARIA", 
      "link": "http://www.flickr.com/photos/lomar_alv/6920550211/", 
      "media": {"m":"http://farm8.staticflickr.com/7040/6920550211_516eb7ae13_m.jpg"}, 
      "date_taken": "2009-08-25T18:34:25-08:00", 
      "description": 
+2

何を意味するのですか? –

+0

大きなコードがあります。それは何ですか?私はそれがFlickrからのJSONPだと思っています。どのコードを解析しようとしていますか? – Quentin

+0

何が問題ないのですか? – Flukey

答えて

0

これは私が通常それを行う方法

//Grab the feed 
$json_feed = file_get_contents("http://www.WhateverTheFeedUrlIs.com"); 

//Decode it 
$json_to_array = json_decode($json_feed); 

//Print it out if you want 
echo '<pre>'; 
print_r($json_to_array); 
echo '</pre>'; 

//Grab specific info 
echo $json_to_array->title; //Recent Uploaded Tags 
echo $json_to_array->url; //http://www.flickr.com.... 
echo $json_to_array->items[0]->title; //PLAYA SOLITARIA 
+0

からサンプルを読んで、誰かがそれを必要とする場合に備えて、これは他のサイトでも行っていることですが、 foreachループを使用して特定の情報をエコーすると 'foreachのために供給された無効な引数'というエラーが返されます配列はありませんか? – user1195847

+0

配列ではないとはどういう意味ですか?foreach($ json_to_array-> items $ i)> {echo $ i-> title;} ' – romo

+0

これはうまくいきません。また$ json_to_array-> itemsが非オブジェクトのプロパティを取得しようとしているというエラーがあります – user1195847

0

である私はそれが日付だ知っているが、誰がこの疑問を抱いのための... DO応答のでjson_decode()は動作します。また、json_decode()を使ってオブジェクトの代わりに配列を返すこともできます。

実際は廃止予定です。 preg_replace()で同様の正規表現をしたいだけです。あるいは:

$responseString = str_replace(array("\n", "\t"), '', $STRING_BACK_FROM_CURL); 
$responseString = stripslashes(strip_tags($responseString)); 
preg_match('/^jsonFlickrFeed\((.*)\)/i', $responseString, $matches); 
$flickrJson = $matches[1]; 
$flickrObject = json_decode($flickrJson); 
1

あなたはオプション渡すことができます:あなたは* * *異なるフォーマットと*動作していないようで

$options = array (
    'format' => 'json', 
    'nojsoncallback' => 1 
); 
+0

あなたの回答は低品質で出現しましたあなたの答えを編集してください*理由*これが質問を解決します –

+0

私はこの答えに遭遇しました...そしてええ...明らかにそれはあなたのAPIのオプションですリンク:https://www.flickr.com/services/api/response.json.html – Scott