2013-09-23 3 views
1

Я новичок в JQuery, JSON, и т.д ..Удалить Скобки из JSON данных в Jquery

У меня есть JSon данные, которые я тяговый в JQuery мобильного/телефон разрыв/Dreamweaver с сайта, котор я не управлять , 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=? на ваш URL.

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

Самый простой способ - исправить ваш серверный код, чтобы он не возвращал скобки. Однако, если это не вариант, вы можете сделать это clientide, используя опцию dataFilter.

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

Хотел бы я исправить это серверной стороной, но это не мои данные. Где я могу поместить этот код в свой запрос? – user1854651

+1

Если это другой домен, тогда на самом деле требуется скобка, чтобы вы могли обойти одну и ту же политику происхождения. ** Вы уверены, что перед первой скобкой нет строки? ** –

+0

Тогда как мне отредактировать мой скрипт, чтобы сделать эту работу? Я не верю, что есть строка. Когда я использую jsonviewer по адресу http://jsonviewer.stack.hu/, он дал мне вывод, который я опубликовал. – user1854651

2

Похоже, вы обращаетесь к запросу JSONP, который должен использовать функцию обратного вызова. Обычно URL-адрес форматируется по линиям http://example.com/data.json?callback=foo, а возвращаемые данные будут foo({"foo":"bar","fizz":"buzz"}). Вероятно, эти парсеры добавлены, потому что обратный вызов оценивается как пустая строка.

Смежные вопросы