2013-09-26 8 views
3

나는 codeigniter로 작성된 서비스로 피들러 (fiddler)의 객체를 전달하고 있습니다. 내 개체가이 같은 모양입니다 :JSON 응답 받기 Codeigniter에서

내 응답 :

{ 
    "GetResponse":{ 
     "OrgName":"adfasd", 
     "OrgAdr1":"asdf", 
     "OrgAdr2":"NA", 
     "ProductList":[ 
      { 
       "ProductID":8724, 
       "Pallets":0, 
       "Pieces":0, 
       "Description":"sdfsd" 
      } 
     ] 
    } 
} 

내가 원하는 것은 :

내가 원하는 또한 CodeIgniter의에서 JSON 객체로 응답을 저장할와 메인 객체 안에 JSON 객체 또는 배열을 가져옵니다.

내가 뭘하려 : CodeIgniter의에서

내 서비스 메서드는이 같은 것입니다 :

public function Save() 
{ 
    $Data = json_decode(file_get_contents('php://input')); 
    echo $Data; 
} 

하지만 피들러 내부 바디응답에서 아무 받고 없습니다입니다.

이 코드를 사용하는 경우 :

$Data = file_get_contents('php://input'); 
echo $Data; 

다음은 있지만, 문자열의 형태로 나에게 응답을 보여주고있다. JSON 개체로 저장하려고합니다.

아무도 내가 여기에 무엇을 놓치고 말할 수 있습니까?

+0

응답이 유효한 json 문자열이 아닙니다. 여기를 확인하십시오. http://json.parser.online.fr –

+0

@RajeevRanjan 그냥 여분의 ","(쉼표)였습니다. 내가 그것을 해결 Plz 지금 확인 –

+0

시도 var_dump(); –

답변

6

다음 코드 사용 :

header('Content-type: application/json'); 

$Data = json_decode(file_get_contents('php://input'),true); 

이제 $Data을 배열로 가져옵니다.

그리고 너는 $Data['name']에 의하여 가치를 얻는다.

+0

그것은 작동합니다 ..... :) –

0

JSON에 값을 인코딩하려면 json_encode()을 사용해야합니다. 당신이 실수 한 것은 비 json 객체를 디코딩한다는 것입니다. 결과는 null입니다.

public function Save() 
    { 
     $Data = json_encode(file_get_contents('php://input')); 
     echo $Data; 
    } 
+0

주어진 코드의 어디에서 (이 코멘트를 무시하십시오) –

+1

이것은 이해가되지 않습니다. 당신은 또한 당신의 대답을 설명해야합니다. – Bhavin

2

json_decode() 개체 또는 연관 배열의 형태 인 PHP 변수 JSON 문자열을 파싱한다. json_encode()은 그 반대입니다.

나는 무슨 일이 일어나는가는 php://input가 이미 json 형식으로되어 있다고 생각합니다. 당신이 json_decode()를 통해 실행하면 오류의 경우

.... echo 에드 문자열로 변환 할 수 없습니다 클래스 stdClass의

객체와 같은 오류가 발생한다 PHP는 객체로 돌려 보고가 억제되면 스크립트가 중지되고 아무 것도 울리지 않습니다.객체 나 배열 중 하나가, 그래서 당신의 저장()이

public function Save() 
{ 
    $Data = json_decode(file_get_contents('php://input')); 
    echo '<pre>'; 
    print_r($Data); 
} 

출력 같아야

0

json_decode() 수익은 다음과 같습니다 -

stdClass Object 
(
    [GetResponse] => stdClass Object 
     (
      [OrgName] => adfasd 
      [OrgAdr1] => asdf 
      [OrgAdr2] => NA 
      [ProductList] => Array 
       (
        [0] => stdClass Object 
         (
          [ProductID] => 8724 
          [Pallets] => 0 
          [Pieces] => 0 
          [Description] => sdfsd 
         ) 

       ) 

     ) 

) 
0

이 시도,

public function Save() 
{ 
    $Data = json_decode(file_get_contents('php://input')); 
    var_dump($Data); 
}