2015-04-09 7 views
-1

Я хочу получить список репозиториев из моей учетной записи GitHub, а URL, который я использую, - https://api.github.com/users/rakeshdas1/repos. Я хочу проанализировать его с помощью jQuery и вывода на HTML-страницу. Код, который я использую для достижения этой цели является:Анализ ответа GitHub API

$(document).ready(function(){ 
    var json = "https://api.github.com/users/rakeshdas1/repos"; 
    $.each(JSON.parse(json), function(idx, obj) { 
     $("#repos").append("<p>"+obj.name+"</p>"); 
    }); 
}); 

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data

первый символ в файле JSON является '[', и я не знаю, почему JQuery не может разобрать его

+1

Нет запроса AJAX, сделанного здесь? 'json' - это строка, содержащая URL-адрес репозитория github, поэтому при вызове' JSON.parse() 'это ошибка ... –

+0

Похоже, вы пытаетесь разобрать строку' "https: //api.github. ком/пользователей/rakeshdas1/хранилищу "'. Вам нужно сделать фактический запрос GET – ElliotM

ответ

2

As Рори сказал в комментариях, никакой запрос AJAX не делается. Вы пытаетесь разобрать строку "https://api.github.com/users/rakeshdas1/repos" как JSON.

Что бы вы искали, это вызов $.get, чтобы загрузить результат этого вызова API, а затем проанализировать его внутри функции.

Следующий код не подходит для меня из-за сетевых ограничений, но он должен дать вам правильную идею. Это может даже сработать для вас.

$(document).ready(function() { 
    var api = "https://api.github.com/users/rakeshdas1/repos"; 
    $.get(api, function (data) { 
     $.each(data, function (idx, obj) { 
      $("#repos").append("<p>" + obj.name + "</p>"); 
     }); 
    }); 
}); 
+0

Что вы подразумеваете под сетевыми ограничениями? Ваш код произвел для меня ту же ошибку. – rakeshdas

+0

Если вы 'console.log (data)' внутри '$ .get', вы получаете объект или строку? Мой код предполагает, что jQuery автоматически анализирует JSON на соответствующий объект, но если это строка, замените '$ .each (data' на '$ .each (JSON.parse (data)'. – Scott

+0

Спасибо, человек, но я думаю, что получил он, я просто назвал '$ .ajax' с определенными параметрами, как показано [здесь] (http://stackoverflow.com/questions/8951810/how-to-parse-json-data-with-jquery-javascript), и я он отлично работает! – rakeshdas