05.12.2017, 16:58
|
Интересующийся
|
|
Регистрация: 20.11.2017
Сообщений: 29
|
|
Распарсить api
Добрый день! Помогите, пожалуйста, распарсить api(любое) с помощью этих функций, вот пример. Не понимаю....Можно любое api, помогите
Последний раз редактировалось KATRIN1786492, 08.12.2017 в 19:51.
|
|
05.12.2017, 17:30
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
KATRIN1786492
а в чем проблема?
<div id="data"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(document).ready(function () {
var renderData = function(){
$.getJSON("https://api.icndb.com/jokes/random/10", function(data){
console.log(data) // просто выводим в консоль полученный Json
});
}
renderData();
var my_getJSON = function(url) {
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open('get', url, true);
xhr.responseType = 'json';
xhr.onload = function() {
var status = xhr.status;
if (status == 200) {
resolve(xhr.response);
} else {
reject(status);
}
};
xhr.send();
});
};
var i=0;
my_getJSON('https://api.icndb.com/jokes/random/10').then(
function(data) { var end=data.value.length;var datum=document.getElementById("data");
for(i=0;i<end;i++) {datum.innerHTML += "<br>"+i+")"+data.value[i].joke;}; }, // resolve
function(status) {alert('Something went wrong.');} // reject
);
})
</script>
|
|
05.12.2017, 17:47
|
Интересующийся
|
|
Регистрация: 20.11.2017
Сообщений: 29
|
|
оно все работает, Все хорошо, но это пример, мне нужно распарсить какой-то свое api, использую эти функции, а я не понимаю как(
|
|
05.12.2017, 18:02
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
KATRIN1786492,
Сообщение от KATRIN1786492
|
мне нужно распарсить какой-то свое api,
|
А оно у вас есть?
|
|
05.12.2017, 18:15
|
Интересующийся
|
|
Регистрация: 20.11.2017
Сообщений: 29
|
|
вот так я пробовала
$(document).ready(function () {
var renderData = function(){
$.getJSON("https://api.opendota.com/api/proMatches", function(data){
console.log(data) // просто выводим в консоль полученный Json
});
}
renderData();
var my_getJSON = function(url) {
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open('get', url, true);
xhr.responseType = 'json';
xhr.onload = function() {
var status = xhr.status;
if (status == 200) {
resolve(xhr.response);
} else {
reject(status);
}
};
xhr.send();
});
};
var i=0;
my_getJSON('https://api.opendota.com/api/proMatches').then(
function(data) { var end=data.value.length;var datum=document.getElementById("data");
for(i=0;i<end;i++) {datum.innerHTML += "<br>"+i+")"+data.value[i];}; }, // resolve
function(status) {alert('Something went wrong.');} // reject
);
})
|
|
06.12.2017, 12:56
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
<div id="data"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(document).ready(function () {
var renderData = function(){
$.getJSON("https://api.opendota.com/api/proMatches", function(data){
console.log(data) // просто выводим в консоль полученный Json
});
}
renderData();
var my_getJSON = function(url) {
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open('get', url, true);
xhr.responseType = 'json';
xhr.onload = function() {
var status = xhr.status;
if (status == 200) {
resolve(xhr.response);
} else {
reject(status);
}
};
xhr.send();
});
};
var i=0;
my_getJSON('https://api.opendota.com/api/proMatches').then(
function(data) { var end=data.length;var datum=document.getElementById("data");
for(i=0;i<end;i++) {datum.innerHTML += "<br>"+i+")"+data[i].league_name;}; }, // resolve
function(status) {alert('Something went wrong.');} // reject
);
})
</script>
|
|
07.12.2017, 09:17
|
Интересующийся
|
|
Регистрация: 20.11.2017
Сообщений: 29
|
|
вы получается кусочек парсите, а подскажите, пожалуйста, как все эти пункты распарсить и чтобы они в одном списке были?
|
|
07.12.2017, 11:26
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
|
|
07.12.2017, 19:17
|
Аспирант
|
|
Регистрация: 20.10.2015
Сообщений: 32
|
|
Проще будет использовать что-то типа такого:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
</head>
<body>
<div id="result"></div>
<script>
// Получаем массив
$(document).ready(function(){
$.getJSON('https://api.opendota.com/api/proMatches', my_getJSON); // вызываем callback-функцию
});
// парсим массив data
function my_getJSON(data)
{
"use strict";
// сюда будем пихать результат
let str = '';
for (let a = 0; a < data.length; a++)
{
str += data[a].radiant_name + ' VS ' + data[a].dire_name + '<br>';
}
// выводим результат
$("#result").html(str);
}
</script>
</body>
</html>
|
|
|
|