2014-07-10 74 views
0

我有一個HTTP_Request2_Response變量時,我使用的回聲它$response->getBody()使我這個:使用HTTP_REQUEST響應內容

{"results":["element1","element2","element3"],"id":"elementID"} 

有沒有什麼辦法讓像$respons["id"]每個元素?有什麼辦法將這些結果轉換成json對象嗎?

回答

2

當然。 json_decode()是你要找的功能:

<?php 

$str = "{\"results\":[\"element1\",\"element2\",\"element3\"],\"id\":\"elementID\"}"; 

$obj = json_decode($str); 

print_r($obj); 

?> 

產地:

stdClass Object 
(
    [results] => Array 
     (
      [0] => element1 
      [1] => element2 
      [2] => element3 
     ) 

    [id] => elementID 
) 

由於它就會返回一個對象,你可以訪問元素作爲公共成員。換句話說:$obj->id會給你'elementID'

或者作爲數組:

$array = json_decode($str, true); 

print_r($array); 

產地:

Array 
(
    [results] => Array 
     (
      [0] => element1 
      [1] => element2 
      [2] => element3 
     ) 

    [id] => elementID 
) 

echo $array['id'];給出elementID

+0

非常感謝,但是如果元素的數量(element1,element2,...)未知並且其數量可能不同,該怎麼辦?有沒有更靈活的方式來獲得它們? – m0j1

+0

這取決於你想要做什麼。你應該像處理任何其他未知長度的數組一樣處理它。 –

+0

我不想手動編輯字符串,然後得到它的JSON文件,我想定義一個模式,例如定義我有「結果」和「ID」的值,然後用結果[0 ] – m0j1