2017-02-20 1 views
1

에 나는 내가 단지 path_type을 원하는디코드 무효 JSON은 PHP

json_decode($myjson, true) 

를 해독하려고 경우가 null 반환이

USER SAVED IN DB.{"user":{"_token":"9ylCAviuuCaNlCtXNya5pEXkY8vkJepZAohsG5VI","submit":"engageiq_post_data","affiliate_id":"","campaign_id":"","offer_id":"","s1":"","s2":"","s3":"","s4":"","s5":"","address":"","phone1":"","phone2":"","phone3":"","phone":"","source_url":"http:\/\/pfr_laravel.dev\/registration","ip":"192.168.10.1","screen_view":"1","first_name":"fff","last_name":"ff","email":"[email protected]","zip":"00501","birthdate":"","dobmonth":"04","dobday":"12","dobyear":"1965","gender":"M","chk_agree":"","submitBtn":"Submit","state":"NY","city":"Holtsville","revenue_tracker_id":1},"revenue_tracker_id":1,"path_type":2,"campaigns":[[1,15,25,48,38,23,44],[245],[249],[27,4,19,181,18],[16],[246],[51,52,151],[10],[26,2,185,180,45,184,182]],"creatives":[]} 

과 같은 외부 소스에서 잘못된 JSON 반환을 키와 값

그래서 내 코드에서 나는이

if (path_type == 2){} 
를 필요

아이디어가 있으십니까?

+0

은 DB._에 저장이 _USER가 있어야됩니까? – MrDarkLynx

+0

예. 결과 null null –

+0

의 원인이라고 생각합니다. 그러면 유효한 JSON이 아닙니다. 당신은'{ "user":'...로 시작해야 할 것입니다 ... – MrDarkLynx

답변

0

먼저 JSON에서 불필요한 문자열을 제거하고 싶습니다. , {"user" 전에 모든 것을 제거하는 정규식 ^(.+?){"user" 사용 :이 정규식을 사용하십시오 MrDarkLynx의 대답 @에 확장

$myjson = substr($myjson, 17); // remove bulk from JSON 

$data = json_decode($myjson, true); 

if ($data['path_type'] == 2) { 
    // code 
} 
1

:
그런 다음 당신은 변수에 디코딩 된 JSON을 저장하고 경로 유형을 확인하려면 먼저 캡처 된 그룹 만 제거하십시오.

이제 당신이 사용할 수있는 유효한 JSON을해야합니다 =)

+0

이것이 더 나은 해결책이라고 생각합니다. 그러나 지금은 MrDarkLynx 대답을 사용하고 있습니다. –