2013-08-19 138 views
0

我是JSON新手,我有php頁面(服務器端),其中包含信息格式化爲JSON,我想在客戶端獲取這些信息(html頁),我發現在jQuery中使用這個函數'getJSON'的例子也是這樣做的,但是我覺得我在使用它的時候丟失了一些東西,因爲我沒有得到我想要的響應(其實我什麼都沒有收到) 這是PHP代碼:我無法從響應getJSON獲取JSON對象(jQuery)

<?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頁面與XML內容和我所做的是改變了XML格式的JSON格式,這裏是客戶端代碼:

<!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

我還注意到你不使用key那是你的json輸出。

$.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

對不起,但我也試過,仍然沒有結果,任何可能的幫助嗎? –