2013-07-24 6 views
0

을 skippes JSON 디코딩하는 것입니다PHP는 json_decode는 여기에 몇 가지 키

{"somearray":[ 
    { 
    "id":71398, 
    "prices":{ 
     "SIMPLE":270, 
     "VIP":300, 
     "SOFA":540, 
     "EXTRA":320 
     } 
    }, 
    { 
    "id":71399, 
    "prices":{ 
     "SIMPLE":190, 
     "VIP":190, 
     "SOFA":380 
     } 
    }, 
    {...} 
]} 

참고 : 일부 항목은 "EXTRA"가격을 가지고 있고, 일부는 그것을 가지고하지 마십시오.

JSON은 온라인 JSON 검사기에 따라 유효합니다. (- 연관 배열로 데이터를 검색하는 것입니다. 참) 키 "EXTRA"이 json_decode 무시 그러나 당신은

json_decode($json, true); 

으로 PHP에서 디코딩 할 때.

을 var_dump()하거나 $ item [ 'prices'] [ 'EXTRA'] 을 시도하면 "EXTRA"키 - 값이 없습니다.

왜요? json으로이 유효 할 때

+1

추가 존재 여부 json_decode''하기 전에 데이터를 확인합니다. –

+0

jsonlint.com에서이 json이 유효하지 않다고 말하십니까? – immulatin

+0

가격 객체의 마지막 값인''EXTRA ': 320' 섹션 뒤에 쉼표가 있습니다 – elzaer

답변

1

이 잘 작동 :

<?php 
$json = '{"somearray":[ 
    { 
    "id":71398, 
    "prices":{ 
     "SIMPLE":270, 
     "VIP":300, 
     "SOFA":540, 
     "EXTRA":320'. // There was an extra comma here. 
     '} 
    }, 
    { 
    "id":71399, 
    "prices":{ 
     "SIMPLE":190, 
     "VIP":190, 
     "SOFA":380 
     } 
    } 
]}'; 

print_r(json_decode($json)); 
?> 

출력 :

[somearray] => Array 
     (
      [0] => stdClass Object 
       (
        [id] => 71398 
        [prices] => stdClass Object 
         (
          [SIMPLE] => 270 
          [VIP] => 300 
          [SOFA] => 540 
          [EXTRA] => 320 
         ) 

       ) 

      [1] => stdClass Object 
       (
        [id] => 71399 
        [prices] => stdClass Object 
         (
          [SIMPLE] => 190 
          [VIP] => 190 
          [SOFA] => 380 
         ) 

       ) 

     ) 
+0

감사합니다 ..하지만 쉼표는 여기 내 타이핑 실수였습니다. – user2612937

관련 문제