извлечение данных и добавление заголовка в объект Json - PullRequest
0 голосов
/ 27 мая 2019

Я хотел бы добавить заголовок к моему объекту JSON, структура, которую я хотел бы получить:

{
"posts": [
    {
        "title": "put title here",
        "upvotes": 1234,
        "score": 1000,
        "num_comments": 100,
        "created": "16.05.2019 12:12",
    },
]
}

Мне удалось получить данные и поместить их в массив из 26 элементов, все хорошо, ноЯ хотел бы как-то добавить это "posts:", чтобы быть выше всего остального, вот мой код:

fetch("https://www.reddit.com/r/funny.json")
.then(resp => resp.json()
.then(async res => {
   let posts = await res.data.children.map(el => {
    let title = el.data.title;
    let upvote = el.data.ups;
    let score = el.data.score;
    let comments = el.data.num_comments;
    let created = el.data.created;
    const allPosts = {title, upvote, score, comments, created}
    postList.push(allPosts)
    return postList
})  
console.log(posts);

    return posts    
})

Ответы [ 4 ]

1 голос
/ 27 мая 2019
  fetch("https://www.reddit.com/r/funny.json")
  .then(resp => resp.json())
  .then(async res => {
    console.log(res);
    let posts = await res.data.children.map(el => {
      let title = el.data.title;
      let upvote = el.data.ups;
      let score = el.data.score;
      let comments = el.data.num_comments;
      let created = el.data.created;
      const allPosts = { title, upvote, score, comments, created };
      let postList = [];
      postList.push(allPosts);
      return postList;
    });
    console.log({"posts": posts});

    return {"posts": posts};
  });
1 голос
/ 27 мая 2019

Вам может потребоваться создать объект, как показано ниже

{propertyName: value}

    const allPosts = {title:title,upvote: upvote,score: score,comments: comments, created:created}
postList.push(allPosts)
0 голосов
/ 27 мая 2019

Вы можете сделать это следующим образом:

fetch("https://www.reddit.com/r/funny.json")
    .then(resp => resp.json()
        .then(async res => {
            let posts = await res.data.children.map(el => {
                return {
                    title: el.data.title,
                    upvote: el.data.ups,
                    score: el.data.score,
                    comments: el.data.num_comments,
                    created: el.data.created
                }
            })
            const postObject = { posts }
            console.log(postObject);
            return postObject
        })

Возвращаемое значение функции карты, таким образом, вы получаете объект с ключом (сообщения) и значениями (объект с деталями).

0 голосов
/ 27 мая 2019

Вы можете попробовать следующий код.

fetch("https://www.reddit.com/r/funny.json")
.then(resp => resp.json())
.then(res => ({
  posts: res.data.children.map(el => ({
    title: el.data.title,
    upvote: el.data.upvote,
    score: el.data.score,
    comments: el.data.num_comments,
    created: el.data.created
  }))
}))
.then(posts => {
  console.log(posts);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...