2014-10-20 3 views
0

나는 간단한 JSON 파일이 :PHP - JSON 문자열을 "."로 구문 분석 할 수 없습니다.

{ 
"json.transactionDetails":{ 
"transactionDate":1266518024, 
"transactionType":"bought", 
"userDescription":"reimbursement", 
"transactionDescription":"Bought 10 AAPL @200", 
"quantity":10, 
"amount":"2010.00", 
"price":"200.00", 
"commission":"10.00", 
} 
} 

그런 다음 JSON 점점 PHP 파일 :

$t_detail = file_get_contents("details.json"); 
$transaction_detail = json_decode($t_detail); 
$tr_detail = $transaction_detail->json.transactionDetails; //this is my issue 

$transaction_type = $tr_detail->transactionType; 
$user_description = $tr_detail->userDescription; 

가 어떻게이 "json.transactionDetails"을 구문 분석 할을? 이 기간은 스크립트가 실패하게 만듭니다. "json."을 제거하면 두 스크립트에서 모두 잘 작동합니다. 트리의 첫 번째 객체를 건너 뛸 수있는 방법이 있습니까? JSON은 외부 API에서오고 있기 때문에 JSON이 출력되는 방식을 변경할 수 없습니다.

+2

'.'는 PHP의 연결 연산자입니다. 키를'$ transaction_detail -> { "json.transactionDetails"}' –

+1

으로 지정해야 할 것입니다.''json_decode ($ t_detail, TRUE); '하는 것이 좋습니다. 이렇게하면 PHP가 객체 대신 배열을 제공하게되고'$ transaction_detail [ 'json.transactionDetails']'를 할 수 있습니다. –

답변

1

시도 true로 json_decode의 2 차 매개 변수를 만들 때

$transaction_detail = json_decode($t_detail,true); 
$tr_detail = $transaction_detail['json.transactionDetails']; 

에, 당신은 단순히 array['key'] 구문

를 사용하여 값을 얻을 수 있도록 배열로 JSON을 구문 분석하거나

을 할 수
$transaction_detail = json_decode($t_detail); 
$tr_detail = $transaction_detail->{"json.transactionDetails"}; 
+0

나는 두 가지 제안을 시도했지만 여전히 아무것도 얻지 못했다. –

+0

try $ transaction_detail -> { "json.transactionDetails"}; –

+0

이제 해보십시오. 감사 –

관련 문제