Reddit JSON данных JQuery - PullRequest
       10

Reddit JSON данных JQuery

0 голосов
/ 01 декабря 2018

Я пытаюсь взять 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);
  }
});
});
...