Получить значение из массива Json - PullRequest
0 голосов
/ 27 сентября 2011

У меня проблемы с получением значений из массива Json. У меня есть набор данных Json, который был создан с использованием json_encode. Вот как это выглядит после использования json_decode и отображения с использованием print_r:

Array ( [0] => stdClass Object ( [postID] => 1961 [postTitle] => Kiss My Fairy [previewThumb] => 2011/09/Kiss-My-Fairy-Ibiza-essentialibiza-2011_feature.jpg [blogContent] => Ibiza has always had a flair for the extravagant, inhibitions are checked in at the airport when the floods of tourists arrive and the locals have embraced a freedom of partying that has turned the quiet Mediterranean island into the Mecca... ) ) a_post_data_array = 1

Код, который достигает этого, выглядит следующим образом:

$post_data_URL = "http://myurl.com/news/scrape/facebook-like-chart-ID.php?post_name=kiss-my-fairy";

$post_data_response = file_get_contents($post_data_URL);  

$a_post_data_array=json_decode($post_data_response);  

Теперь мне просто нужно извлечь некоторые значения из этого массива для использования в качестве переменных. Массив будет иметь только 1 набор значений. Я использую следующий код, но он не работает.

echo "**** -- " . $a_post_data_array[post_title] . "<br>";

Может кто-нибудь помочь, пожалуйста? Извините, это так просто. Я искал в Интернете, но не могу найти никаких примеров этого.

Ответы [ 3 ]

0 голосов
/ 27 сентября 2011

Есть несколько проблем с вашим кодом:

  • Сначала вы должны указать json_decode, чтобы получить чистый массив с $data = json_decode($response, TRUE);
  • Затеммассив результатов представляет собой список, и вы должны получить доступ к первому элементу как $data[0]
  • Запись, к которой вы хотите получить доступ, имеет ключ postTitle, а не post_title, как показано в примере кода.(И если это не предопределенная константа, это не сработает.)
  • И вам нужно поместить эти ключи массива в кавычки, например print $data[0]["postTitle"];

Увеличьте error_reporting уровень для помощи в разработке.

0 голосов
/ 27 сентября 2011

попробуйте этот код PHP:

//$post_data_response = file_get_contents("https://raw.github.com/gist/1245028/80e690bcbe6f1c5b46676547fbd396ebba97339b/Person_John.json");
//$PersonObject = json_decode($post_data_response);

// Get Person Object from JSON Source
$PersonObject = json_decode('{"ID":"39CA2939-38C0-4C4E-AE6C-CFA5172B8CEB","lastname":"Doe","firstname":"John","age":25,"hobbies":["reading","cinema",{"sports":["volley-ball","snowboard"]}],"address":{}}');

// Get data from Object
echo "Person ID => $PersonObject->ID<br>";
echo "Person Name => $PersonObject->firstname<br>";
echo "Person Lastname => $PersonObject->lastname<br>";  
echo "Person Age => $PersonObject->age<br>";
echo "Person Hobbies => " . $PersonObject->hobbies[0] . "<br>";     
0 голосов
/ 27 сентября 2011
echo "** -- " . $a_post_data_array[0]['post_title'];
...