Я пытаюсь взять javascript и возиться с API Reddit.
Что я пытаюсь сделать: Получить верхний пост, его заголовок и верхний комментарий.
Как я это сделал: getJson для верхнего поста, найдите постоянную ссылку верхнего поста, затем используйте его, чтобы получитьJJ для верхнего комментария.
Я просмотрел сетьчтобы получить код ниже.Это работает, но я думаю, что это кажется довольно коротким для очень простой задачи.
То, что я думаю, может быть сокращено: Для обоих поисков, я ищу только один результат (верхний), но я зацикливался на $ .each.Я не знаю, как избавиться от этого: / таким образом, я мог бы также избавиться от «среза», я прав?
Также ищу советы о том, как понимать структуру данных Reddit JSON. Мне было очень тяжело.что с "result [1] .data.children" и "result.data.children".Я обнаружил код в основном в Google, в противном случае я понятия не имею, в каком индексе находятся данные, которые я ищу.Есть ли какие-либо ресурсы, которые помогут мне понять это?
В ходе другого поиска мне также сказали, что добавление ".json" к любому URL-адресу reddit даст мне данные json.что я и сделал для "https://www.reddit.com/r/Art/hot.json?limit=10" и" https://www.reddit.com/r/Art/comments/a1xfrk/last_stop_acrylic_18x_24/.json?sort=toplimit=1". Но, черт возьми, целая страница персонажей просто взорвалась мне в лицо, и мне было трудно разобраться в этом.Пожалуйста, сообщите.
Спасибо, что выслушали мое длинное объяснение.
Мой код:
function getComment(permalink){
var commentPage = "https://www.reddit.com" + permalink + ".json?sort=top"
$.getJSON(commentPage, function (result) {
var posts = [];
$.each(result[1].data.children.slice(0, 1), function(i, post) {
posts.push(post.data);
});
for (var i = 0; i < posts.length; i++) {
$("#text").append('<p>'+posts[i].body+'</p>');
}
});
}
$('#art').ready(function() {
$.getJSON("https://www.reddit.com/r/Art/hot.json?limit=1", function foo(result) {
var posts = [];
$.each(result.data.children.slice(0, 1), function(i, post) {
posts.push(post.data);
});
for (var i = 0; i < posts.length; i++) {
$("#text").append('<h4>' + posts[i].title + '</h4>');
$("#art").append('<img id=\"img" src=\"' + posts[i].url +'\"">');
getComment(posts[i].permalink);
}
});
});