2013-07-27 2 views
-1

응답 배열을 json으로 인코딩하려고하는데 현재까지 작동했습니다.Json 코드 배열을 php - array()가 "Array ... [...]"가 아닌 "[...]"가됩니다.

$response = array(); 
$response['icons']= $icons_arr; 
$response['message']= $msg; 

echo json_encode($response); 

결과는

Array{"icons":["{\r\n\t\t\t\t\t\"icon_web_id\": \t\t\t\"0 ... 

이 자바 스크립트는 "배열"단어를 구문 분석 할 수 없습니다와 같은 오류가 발생합니다. 필자는 JQuery 함수 $ .parseJSON()이 {} 또는 []를 기대한다고 생각합니다.

내가 뭘 잘못하고 있니? json_encode()가 제대로 작동하지 않는 이유는 무엇입니까?

보너스 질문 :이 모든 원인이 무엇입니까? json으로 문자열이 출력되기 전에

+1

전체 문제에 답변을 드릴 수는 없지만,'\ t'는 PHP의 탭입니다. 어쩌면 코드에 어딘가에 공백 대신 탭이 포함되어있을 수도 있습니다. –

+0

수정 - 이전에는 중첩 된 객체를 인코딩하는 사용자 정의 json 인코딩 기능이있었습니다. 그것은 탭과 새로운 행을 포함하고 있습니다. 나는 그것을 제거하고 모두 \ n \ t \ t의 dissapeard. – mipmap

+0

좋아, 지금은 완전한 해결책이 생길 것입니다. –

답변

2

코드의 일부 다른 부분이 '배열'출력을 생산하고, 다른 에코 문에 코드를 확인

echo "json_encode returned ".json_encode($response); 

에 출력 라인을 변경하여이를 증명할 수 있습니다.

\t는 PHP의 탭은 다음과 같습니다 당신의 보너스 질문에 관한

+0

네, 맞습니다. 이제 그걸 발견해야 해. – mipmap

1

. 코드에 어딘가에 공백 대신 탭이 포함되어있을 수 있으며, 여러 개의 \t으로 렌더링 될 수 있습니다.

관련 문제