2017-12-27 1 views
3

JSON 정보를 PHP 변수에 넣으려고하고 있으며 오류가 항상 발생합니다.JSON을 PHP 변수에 저장하려면 어떻게해야합니까?

Array 
(
    [0] => stdClass Object 
     (
      [flightId] => ****** 
      [******] => stdClass Object 
       (
        [******] => ****** 
        [******] => ****** 
        [******] => ****** 
        [******] => ****** 
        [******] => ******     
       ) 

주의 사항 :

: 나는 jsondecode1echo 때이 출력이는 $jsondecode1의 조각이

header('Content-Type: application/json'); 
$jsondecode1 = json_decode($json1); 
print_r ($jsondecode1); 

:

은 읽을 수 JSON을 내 코드입니다

문자열 변환에 대한 배열 C : 라인 \의 XAMPP ...... \ simpletest3.php 48

그래서 나는 print_r()을 사용했다. 나는 PHP 변수로 [flightId] (예를 들어) 넣어하려고 무엇

:

$jsondecode1 = json_decode($json1); 
$jsondecode2 = $jsondecode1->flightId; 
print_r ($jsondecode2); 

출력 :가 주의 사항 : 속성을 얻기 위해 노력 C에서 비 객체의 'flightId':. ........ \ 라인 simpletest3.php48

너무 다른 코드를했지만, 산출물은 매우 유사했으며 필자의 질문보다 오랜 시간 내 질문을하고 싶지 않습니다. 그럼 어떻게하면 [flightId]을 PHP 변수에 넣을 수 있습니까?

편집 :

솔루션 :

$jsondecode1 = json_decode($json1); 
$jsondecode2 = $jsondecode1[0]->flightId; 
print_r ($jsondecode2); 

또는 :

foreach ($jsondecode1 as $data) { 
    print_r($data->flightId); 
} 

답변

2

당신은 (당신이 표시된 것) 아래와 같이

$jsondecode1 = json_decode($json1); 
$jsondecode2 = $jsondecode1[0]->flightId; 
echo $jsondecode2; 

그것을해야하지만 당신은 다차원 배열이 있으므로 아래와 같이 수행 -

$jsondecode1 = json_decode($json1); 

foreach ($jsondecode1 as $jsondecode) { 
    echo $jsondecode->flightId; // here you can use echo $flightId = $jsondecode->flightId; 
} 
+1

그레이트 너무 작동 : 그래서 당신은 그 배열이 다음 코드 아래 flightId

시도를 얻을 수 있습니다 처음 액세스해야합니다. 고맙습니다. :) – Deadpool

+0

@duffbeerisgood 또한'json_decode()'를 사용할 때 json 문자열을 객체 배열 –

+1

으로 변환 할 때 json_decode()를 사용해야합니까? – Deadpool

2

당신의 json은 1 개의 객체가 아니라 객체의 배열을 포함합니다.당신은 배열의 첫 번째 개체 갖고 싶어

$jsondecode1 = json_decode($json1); 

// loop through all objects in the array 
foreach ($jsondecode1 as $data) { 
    print_r($data->flightId); 
} 

또는 :

$jsondecode1 = json_decode($json1); 
$jsondecode2 = $jsondecode1[0]->flightId; 
print_r ($jsondecode2); 

을하지만 그 질문은 왜 JSON 배열이 아닌 하나의 객체인가? 당신이 print_r을 사용해야합니다 위해


또한 당신은 단순히, 에코 또는 (배열 또는 객체와 같은) 비 스칼라 유형을 인쇄 할 수 없습니다.

+1

위대한 솔루션. 고맙습니다 ! – Deadpool

+0

나는 json이 배열 인 이유가 없다. 너희들이 나에게 그렇게 말할 수 있다고 생각했다. – Deadpool

+0

@duffbeerisgood 그건 당신의 의견입니다. 그래서 왜 그런지 말할 수 없습니다. $ json1은 [{ ""flightId ":"****** ", ...}와 같은 문자열입니다. 그것은 객체의 배열입니다. { "flightId": "******", ...}을 가지고 있고 주위에 [및]이 없으면 하나의 json 객체입니다. – Robert

2

귀하의 flightId은 하나의 배열 안에 있습니다. whoch 색인은 0입니다.

$jsondecode1 = json_decode($json1); 
$jsondecode2 = $jsondecode1[0]->flightId; 
print_r ($jsondecode2); 
+0

위대한 작품입니다. 고맙습니다. :) – Deadpool

관련 문제