Реагируйте, отображая объект средней сложности json, чтобы получить ключи внутри сообщений - PullRequest
0 голосов
/ 10 апреля 2020

Мне нужно взять объект json, похожий на этот, который я извлекаю из моего API, этот запрос из API увеличения Oauth.

{
  "date": "2019-09-17",
  "page_size": 10,
  "next_page_token": "",
  "messages": [
    {
      "id": "F3CbafdljsfjkdfgBA7",
      "message": "And you?",
      "sender": "myemail@someemailaddr.com",
      "date_time": "2019-09-17T20:25:21Z",
      "timestamp": 1568751921626
    },
    {
      "id": "B0DbfdgdfhAAfgf237000",
      "message": "I am good",
      "sender": "myemail@someemailaddr.com",
      "date_time": "2019-09-17T20:25:17Z",
      "timestamp": 1568751917976
    },
    {
      "id": "C9Bbdfgd4sad301",
      "message": "How are you",
      "sender": "myfriendsemail@someemailaddr.us",
      "date_time": "2019-09-17T20:24:13Z",
      "timestamp": 1568751853297
    },
    {
      "id": "769fgdgdfgfd4566F7B96665",
      "message": "hello",
      "sender": "myfriendsemail@someemailaddr.us",
      "date_time": "2019-09-17T20:22:26Z",
      "timestamp": 1568751746769
    }
  ]
}

и я действительно просто забочусь о сопоставлении полей сообщения и отправителя. Впрочем, я впервые работаю с JSON объектами, и я застрял на этом. Я отскочил на нескольких форумах, и хотя многие вещи выглядят многообещающе, возможно, я просто не понимаю концепцию. Я обычно парень UI / UX, и у меня возникают проблемы при взаимодействии со сборкой / работой с несколькими запросами API, чтобы получить нужные данные в нужном формате.

1 Ответ

2 голосов
/ 10 апреля 2020

Если вы хотите изменить каждый элемент массива, вы должны использовать функцию Array.map:

function parseArray(arr) {
  return arr.map((messageObject) => {
    return {
      message: messageObject.message,
      sender: messageObject.sender,
    };
  });
}

const input = {
  "date": "2019-09-17",
  "page_size": 10,
  "next_page_token": "",
  "messages": [{
      "id": "F3CbafdljsfjkdfgBA7",
      "message": "And you?",
      "sender": "myemail@someemailaddr.com",
      "date_time": "2019-09-17T20:25:21Z",
      "timestamp": 1568751921626
    },
    {
      "id": "B0DbfdgdfhAAfgf237000",
      "message": "I am good",
      "sender": "myemail@someemailaddr.com",
      "date_time": "2019-09-17T20:25:17Z",
      "timestamp": 1568751917976
    },
    {
      "id": "C9Bbdfgd4sad301",
      "message": "How are you",
      "sender": "myfriendsemail@someemailaddr.us",
      "date_time": "2019-09-17T20:24:13Z",
      "timestamp": 1568751853297
    },
    {
      "id": "769fgdgdfgfd4566F7B96665",
      "message": "hello",
      "sender": "myfriendsemail@someemailaddr.us",
      "date_time": "2019-09-17T20:22:26Z",
      "timestamp": 1568751746769
    }
  ]
};

console.log(parseArray(input.messages));
...