2017-07-04 72 views
0

我試圖用JSON http://digitsolutions4u.com/apps_services/statuslist.php?catid=1 解碼這樣如何獲取數組內stdClass的

<?php 
$json_url = "http://digitsolutions4u.com/apps_services/statuslist.php?catid=1"; 
$json = file_get_contents($json_url); 
$json=str_replace('}, 

]',"} 

]",$json); 
$data = json_decode($json); 

echo "<pre>"; 
print_r($data); 
echo "</pre>"; 
?> 

我想解碼後得到的所有「statusdesc」值。 我得到的結果是這樣

stdClass Object 
(
    [posts] => Array 
     (
      [0] => stdClass Object 
       (
        [statusid] => 1329 
        [statusdesc] => love86.jpg 
       ) 
) 
) 

東西,我只是想列出網頁上的所有可用statusdesc像 love86.jpg love87.jpg love88.jpg 等。任何人都可以爲我提供解決方案(代碼)?我嘗試了幾個線程,但沒有成功。

+0

一個重要的注意事項就是單獨使用'json_decode',避免在你的json字符串上進行字符串處理(就像你對'str_replace'做的那樣), – Ghost

+0

使用json_decode($ response_string,真正);和array_column() – JYoThI

+0

可能的重複[如何從JSON提取數據與PHP?](https://stackoverflow.com/questions/29308898/how-do-i-extract-data-from-json-with-php ) –

回答

1

所有你需要做的是告訴json_decode(),你希望它的JSON字符串轉換爲所有的數組,而不是作爲JSONString想要的對象

<?php 
$json_url = "http://digitsolutions4u.com/apps_services/statuslist.php?catid=1"; 
$json = file_get_contents($json_url); 

$data = json_decode($json, true); 
// the change .. .. .. ^^^^ 

echo "<pre>"; 
print_r($data); 
echo "</pre>"; 
foreach ($json['posts'] as $post) { 
    echo $post['statusdesc'] . '<br>'; 
} 
?> 

不過是簡單TP對付它,因爲它是和做

<?php 
$json_url = "http://digitsolutions4u.com/apps_services/statuslist.php?catid=1"; 
$json = file_get_contents($json_url); 

$data = json_decode($json); 

//echo "<pre>"; 
//print_r($data); 
//echo "</pre>"; 

foreach ($json->posts as $post) { 
    echo $post->statusdesc . '<br>'; 
} 
?> 
2

缺省情況下它json_decode解碼爲一個對象,而不是關聯數組。您只需通過箭頭(->)表示法訪問該對象的成員即可。要獲得每篇文章,您可以使用foreach來遍歷它們。

foreach ($data->posts as $post) { 
    echo $post->statusdesc; 
} 
0

使用json_decode()與第二參數true。它將json字符串作爲關聯數組返回。並使用array_column這樣

<?php 

    $response ='{"posts":[{"statusid":"1329","statusdesc":"love86.jpg"},{"statusid":"1328","statusdesc":"love85.jpg"},{"statusid":"1327","statusdesc":"love84.jpg"},{"statusid":"1326","statusdesc":"love83.jpg"},{"statusid":"1325","statusdesc":"love82.jpg"},{"statusid":"1324","statusdesc":"love81.jpg"},{"statusid":"1323","statusdesc":"love80.jpg"},{"statusid":"1322","statusdesc":"love79.jpg"},{"statusid":"1321","statusdesc":"love78.jpg"},{"statusid":"1320","statusdesc":"love77.jpg"},{"statusid":"1319","statusdesc":"love76.jpg"},{"statusid":"1318","statusdesc":"love75.jpg"},{"statusid":"1317","statusdesc":"love74.jpg"},{"statusid":"1316","statusdesc":"love73.jpg"},{"statusid":"1315","statusdesc":"love72.jpg"},{"statusid":"1314","statusdesc":"love71.jpg"},{"statusid":"1313","statusdesc":"love70.jpg"},{"statusid":"1312","statusdesc":"love69.jpg"},{"statusid":"1311","statusdesc":"love68.jpg"},{"statusid":"1310","statusdesc":"love67.jpg"},{"statusid":"1287","statusdesc":"love66.jpg"},{"statusid":"1286","statusdesc":"love65.jpg"},{"statusid":"1285","statusdesc":"love64.jpg"},{"statusid":"1284","statusdesc":"love63.jpg"},{"statusid":"1283","statusdesc":"love62.jpg"},{"statusid":"1282","statusdesc":"love61.jpg"},{"statusid":"1204","statusdesc":"love60.jpg"},{"statusid":"1203","statusdesc":"love59.jpg"},{"statusid":"1202","statusdesc":"love58.jpg"},{"statusid":"1201","statusdesc":"love57.jpg"},{"statusid":"1200","statusdesc":"love56.jpg"},{"statusid":"1199","statusdesc":"love55.jpg"},{"statusid":"1045","statusdesc":"love54.jpg"},{"statusid":"1044","statusdesc":"love53.jpg"},{"statusid":"1043","statusdesc":"love52.jpg"},{"statusid":"1042","statusdesc":"love51.jpg"},{"statusid":"1004","statusdesc":"love50.jpg"},{"statusid":"1003","statusdesc":"love49.jpg"},{"statusid":"1002","statusdesc":"love48.jpg"},{"statusid":"1001","statusdesc":"love47.jpg"},{"statusid":"1000","statusdesc":"love46.jpg"},{"statusid":"239","statusdesc":"love45.jpg"},{"statusid":"238","statusdesc":"love44.jpg"},{"statusid":"237","statusdesc":"love43.jpg"},{"statusid":"236","statusdesc":"love42.jpg"},{"statusid":"235","statusdesc":"love41.jpg"},{"statusid":"234","statusdesc":"love40.jpg"},{"statusid":"233","statusdesc":"love39.jpg"},{"statusid":"232","statusdesc":"love38.jpg"},{"statusid":"231","statusdesc":"love37.jpg"},{"statusid":"230","statusdesc":"love36.jpg"},{"statusid":"229","statusdesc":"love35.jpg"},{"statusid":"228","statusdesc":"love34.jpg"},{"statusid":"227","statusdesc":"love33.jpg"},{"statusid":"226","statusdesc":"love32.jpg"},{"statusid":"31","statusdesc":"love31.jpg"},{"statusid":"30","statusdesc":"love30.jpg"},{"statusid":"29","statusdesc":"love29.jpg"},{"statusid":"28","statusdesc":"love28.jpg"},{"statusid":"27","statusdesc":"love27.jpg"},{"statusid":"26","statusdesc":"love26.jpg"},{"statusid":"25","statusdesc":"love25.jpg"},{"statusid":"24","statusdesc":"love24.jpg"},{"statusid":"23","statusdesc":"love23.jpg"},{"statusid":"22","statusdesc":"love22.jpg"},{"statusid":"21","statusdesc":"love21.jpg"},{"statusid":"20","statusdesc":"love20.jpg"},{"statusid":"19","statusdesc":"love19.jpg"},{"statusid":"18","statusdesc":"love18.jpg"},{"statusid":"17","statusdesc":"love17.jpg"},{"statusid":"16","statusdesc":"love16.jpg"},{"statusid":"15","statusdesc":"love15.jpg"},{"statusid":"14","statusdesc":"love14.jpg"},{"statusid":"13","statusdesc":"love13.jpg"},{"statusid":"12","statusdesc":"love12.jpg"},{"statusid":"11","statusdesc":"love11.jpg"},{"statusid":"10","statusdesc":"love10.jpg"},{"statusid":"9","statusdesc":"love9.jpg"},{"statusid":"8","statusdesc":"love8.jpg"},{"statusid":"7","statusdesc":"love7.jpg"},{"statusid":"6","statusdesc":"love6.jpg"},{"statusid":"5","statusdesc":"love5.jpg"},{"statusid":"4","statusdesc":"love4.jpg"},{"statusid":"3","statusdesc":"love3.jpg"},{"statusid":"2","statusdesc":"love2.jpg"},{"statusid":"1","statusdesc":"love1.jpg"}]}'; 

    $response_array = json_decode($response,true); 

    $final_res = array_column($response_array['posts'],'statusdesc'); 

    print_r($final_res); 

?> 

OUTPUT:

Array 
(
    [0] => love86.jpg 
    [1] => love85.jpg 
    [2] => love84.jpg 
    [3] => love83.jpg 
    [4] => love82.jpg 
    [5] => love81.jpg 
    [6] => love80.jpg 
    ...... 
) 
0
$json_url = "http://digitsolutions4u.com/apps_services/statuslist.php?catid=1"; 
$json = file_get_contents($json_url); 

,應返回你對象的數組(stdClass的)

$elm = json_decode($json); 
var_dump($elm->posts); 

你可以得到你的字符串之一通過這種方式:

$elm->posts[5]->statusdesc 

,或者您可以使用json_decode($ JSON,真)

注意你的JSON轉換成數組:json_decode不記得自己的原班爲序列化,它總是返回stdClass的(你可以訪問到的屬性,但不到原始類的方法)

相關問題