2013-09-23 62 views
1
刪除括號

我是新來的JQuery,JSON等。從JSON數據jQuery中

我有我拉着到jQuery Mobile的/電話間隙/ Dreamweaver中從一個網站,我不管理一些JSON數據。該JSON回來這樣的:

({ 
    "status": "OK", 
    "total": "1281", 
    "people": [ 
    { 

之後的所有數據,然後用結束:

} 
    ] 
}) 

括號不會讓我的JSON查詢使用簡單的功能在瀏覽器中顯示:

  <script type="text/javascript"> 
     $(document).on('pageinit', '#more', function(){ 
      var url="http://www.somedata.com"; 
      $.getJSON(url,function(json){ 
       //loop through deals 
       $.each(json.people,function(i,dat){ 
        $("#todaycal").append("<li>"+dat.name+" "+dat.caseNo+"</li>"); 
       }); 
       $("#todaycal").listview('refresh'); 
      }); 
     }); 
    </script> 

我該如何刪除小括號或「逃避」它以使其發揮作用?

謝謝。

回答

3

我的猜測是你正試圖訪問JSONP數據。您可能需要將?callback=?添加到您的網址。

var url="http://www.somedata.com"; 
$.getJSON(url+'?callback=?', function(json){ 
    //loop through deals 
    $.each(json.people,function(i,dat){ 
     $("#todaycal").append("<li>"+dat.name+" "+dat.caseNo+"</li>"); 
    }); 
    $("#todaycal").listview('refresh'); 
}); 
+0

我很高興我不是唯一一個想過JSONP的人。 – zzzzBov

+1

@zzzzBov:我想這就是爲什麼有'()'。它期待回調,什麼也沒得到。 –

-3

最簡單的方法是修復您的服務器端代碼,使其不返回括號。但是,如果這不是一個選項,您可以使用dataFilter選項在客戶端執行此操作。

$.ajax({ 
    url: theurl, 
    dataType: "json", 
    dataFilter: function(data) { 
     // trim the first and last characters and return the result 
    } 
}) 
+0

我希望我可以修復它的服務器端,但它不是我的數據。我在哪裏將該代碼放入查詢中? – user1854651

+1

如果它是一個不同的域,那麼實際上需要括號,以便您可以繞過相同的源策略。 **你確定在第一個括號之前沒有字符串嗎?** –

+0

那麼如何編輯我的腳本來完成這項工作?我不相信有一個字符串。當我在http://jsonviewer.stack.hu/使用jsonviewer時,它給了我發佈的輸出。 – user1854651

2

聽起來你正在訪問一個JSONP請求,它應該使用回調函數。通常URL的格式爲http://example.com/data.json?callback=foo,返回的數據爲foo({"foo":"bar","fizz":"buzz"})。這些parens可能被添加,因爲回調被評估爲空字符串。