2013-08-19 3 views
0

JSON을 처음 접했기 때문에 JSON 형식의 정보를 포함하는 PHP 페이지 (서버 측)가 있으며이 정보를 클라이언트 측에서 가져 오려고합니다 (html 페이지), 나는이 함수를 사용하여 'getJSON'jQuery 같은 일을 사용하여 예제를 찾았지만, 나는 내가 원하는 응답을 얻지 못하기 때문에 그것을 사용할 때 뭔가 빠졌다고 생각한다. (사실 나는 아무것도 얻지 못한다) 나는이 PHP 페이지가 XML 컨텐츠로했고 제가 한 것은 JSON 형식으로 XML 형식을 변경하고, 여기에 클라이언트 측 코드는 언급한다고 생각getJSON (jQuery)에 대한 응답에서 JSON 객체를 가져올 수 없습니다.

<?php 
    //header('Content-Type: text/xml'); 
    header('Content-type: application/json'); 
    ?> 

    { 
     "file": 
     { 
      "filename" : "Test.txt", 
      "fileCreatingDate" : "15-7-2013", 
      "fileModifyDate" : "20-8-2013", 
      "filesize" : "3002345", 
      "filetype" : "Text", 
     } 
    } 

:이 PHP 코드입니다

<!DOCTYPE html> 
       <html> 
       <head> 
        <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
        <script src="http://code.jquery.com/jquery-migrate-1.1.0.min.js"></script> 
       </head> 

       <body> 


       <div id="response"> 
        <p id="responseParagraph">Base text</p> 
       </div> 

       <script> 
       //172.25.10.99 is the server ip 
        $.getJSON('http://172.25.10.99/list2.php', 
         function(data) { 
          $('#responseParagraph').append("<p>"+data.responseMessage+"   </p>"); 
         }); 
       </script> 
       </body> 
       </html> 

나중에 구문 분석 할 JSON 개체를 받고 싶습니다. 내가 말하고자하는 것은 xmlhttprequest에 가까운 작업을 수행하고 JSON 대신 응답을 파싱하고 싶습니다. 도와 주시겠습니까 ?? 나는 정말로 감사 할 것입니다.

+0

json 출력이 시작되기 전에 공백이 있습니다. 제거하려고 시도 할 수 있습니다. – DevZer0

+1

JSON의 "filetype"속성 뒤에 쉼표가 있습니다. 실제 응답과 발견 된 오류를 볼 수 있기 때문에 브라우저 오류 콘솔을 점검해야합니다. * 편집 * 공백은 문제가되지 않습니다. – Pointy

답변

2

또한 json 출력에있는 key을 사용하지 않는 것으로 나타났습니다.

$.getJSON('http://172.25.10.99/list2.php', 
    function(data) { 
     $('#responseParagraph').append("<p>"+data.file.filename+"</p>"); 
    }); 
5

쉼표가 "filetype" : "Text",이면 json이 유효하지 않습니다. 그것을 제거하면 json을 파싱해야합니다. jsonlint을 사용하여 json이 올바른지 확인할 수 있습니다.

+0

나는 쉼표를 제거한 다음 jsonlint를 사용하여 json을 검증했지만 json은 유효하지만 아직 동일한 문제에 직면하고 있습니다. 응답을 얻을 수 없으며 다른 아이디어도 얻을 수 있습니까 ?? –

+0

아래에서 DevZer0이 말한 것을 수행하십시오. 'data'는 json 문자열이 지정하는 배열이므로'data.responseMessage'는 존재하지 않습니다. – Sumurai8

+0

미안하지만 나는 그것을 시도했지만 여전히 결과가 없다. 가능한 모든 도움을 다시 ?? –

관련 문제