2013-07-19 3 views
0

json 문자열을 가지고 있는데, 작은 배열의 객체를 파싱하고 싶습니다. 디코더를 사용하고 있지만 도움이되지 않습니다. 왜 이런 일이 일어 났습니까?json 문자열을 디코딩하는 데 문제가 있습니다.

난 cleanforcharacters

$cleanforcharacters = preg_replace('/["{mtwrdayfsasusseto}"]_/', '', $found['newdiscounthours']); 

이 내 출력

discount_org: "{"day":"8:00","time":"12:00","discount":"10","day":"8:00","time":"12:00","discount":"10"}" 

이 원할 출력 (오브젝트의 배열)

discount_org: [ 
{ 
day: 0, 
time: 8, 
discount: 10 
}, 
{ 
day: 0, 
time: 14, 
discount: 10 
}, 

이것이 어떻게 $로서 변수를 정의 I 시도했습니다

$ arrayOfEmails = json_decode ($ cleanforcharacters);

이 내가 지금

discount_org: { 
day: "20", 
time: "12:00", 
discount: "20" 
} 

나머지를 얻고 무엇인가가 나오는 못하고 있습니다

답변

0

당신이 선언 한 때문입니다 객체와 키 값을 무시하기보다는됨에 따라 새로운 값을 설정 : -

은 당신이 준 -

discount_org: "{"day":"8:00","time":"12:00","discount":"10","day":"8:00","time":"12:00","discount":"10"}" 

이 있어야한다 : -

discount_org: "[{"day":"8:00","time":"12:00","discount":"10"},{"day":"8:00","time":"12:00","discount":"10"}]" 

그런 다음 사용 : -

$arrayOfEmails = json_decode($cleanforcharacters,true); 

이 당신에게 올바른 결과를 줄 것이다.

+0

문자열이 아니고 객체가 아니기 때문에 그렇지 않은가요? 그렇다면 디코더가 문자열로 작동한다고 생각하지 않습니다. – Zaz

관련 문제