2014-01-16 6 views
-1

json 출력이 PHP로 작성되었습니다.Json php 서식 지정

<?php 
// parametri del database 
$db_host = "<ip-address>"; 
$db_user = "<database user>"; 
$db_password = "<database password>"; 
$db_name = "<database name>"; 
$db = mysql_connect($db_host, $db_user, $db_password); 
if ($db == FALSE) 
die ("Errore nella connessione. Verificare i parametri..."); 
mysql_select_db($db_name, $db) 
or die ("Errore nella selezione del database. Verificare i parametri..."); 
$q=mysql_query("SELECT * FROM <nome tabella>"); 
while($e=mysql_fetch_assoc($q)) 
     $output[]=$e; 
print(json_encode($output)); 
mysql_close(); 
?> 

"문제"는 형식이 올바르지 않지만 출력이 한 줄에 있다는 것입니다.

[{"id":"1","Nome":"Pippo","Cognome":"Paperino","mail":"[email protected]","cell":"3333333333}]

어떻게 내가 좋아하는 출력을 표시 할 수 있습니다 :

{ 
    "a": "apple", 
    "b": "banana", 
    "c": "catnip" 
} 

를?

은 내가 echo json_encode($response, JSON_PRETTY_PRINT);를 사용하여 tryied하지만 작동하지 않습니다 .. 내가

print(json_encode($output, JSON_PRETTY_PRINT));

을 쓴하지만 난 오류가 발생합니다.

+0

PHP 버전을 업데이트하십시오. – BuysDB

+0

먼저 질문에 오류를 게시해야합니다. 두 번째 JSON_PRETTY_PRINT는 PHP 5.4에서만 추가되었으므로 업그레이드해야합니다. – Bojangles

+0

처음으로이 작업을 수행하려고 시도 했으므로 잘못된 것일 수 있습니다. 'JSON_PRETTY_PRINT'를 사용하여 json 출력을 포맷하는 또 다른 방법이 있습니까? – Davidebj

답변

0

먼저 유효한 json이 아닌 json 문자열을 확인하십시오. 당신의 JSON 문자열은 다음과 같아야합니다

[{"id":"1","Nome":"Pippo","Cognome":"Paperino","mail":"[email protected]","cell":"3333333333"}] 

당신은 당신의 JSON 문자열의 끝에 큰 따옴표를 놓쳤다.
json이 유효한지 확인할 수 있습니다. here

왜 형식화 된 출력을 원하십니까?

+0

내가 쓴 것은 예제입니다. 올바른 데이터 출력을 쓸 수 없기 때문에 데이터가 올바르지 않지만 발명되었습니다. 어쨌든 나는 PHP 버전을 업데이트하려고 노력했다 :'echo json_encode ($ output, JSON_PRETTY_PRINT);'하지만 작동하지 않고 한 줄로 다시 표시된다 .. – Davidebj

+0

더 컴플렉스가 있기 때문에 필요하다. – Davidebj

+0

승인. 그래서 그 링크를 참조하십시오 : http://stackoverflow.com/questions/2614862/how-can-i-beautify-json-programmatically – user2936213