Как извлечь данные JSON из необработанного URL-адреса.github и сохранить их в переменной?

#json #typescript #cypress

Вопрос:

Допустим, у меня есть файл JSON под названием data.json в Github. Я могу просмотреть его в формате raw в URL-адресе Github следующим образом: https://raw.githubusercontent.com/data.json (Это гипотетический URL-адрес. Это не реально)

И предположим, что URL-адрес содержит данные JSON, подобные этому:

 "users_1": [
  {
    "id": 1234,
    "name": "Bob"
  },
  {
    "id": 5678,
    "name": "Alice"
  }
]
 

Как извлечь все данные JSON из этого URL-адреса и сохранить их в переменной в тесте Cypress? Я знаю, что Cypress на самом деле не использует обещания, поэтому мне трудно это реализовать. До сих пор я получал это в машинописном виде:

 let users; // I want this variable to store JSON data from the URL
const dataUrl = "https://raw.githubusercontent.com/data.json";

cy.request(dataUrl).then((response) => {
  users = JSON.parse(response); // This errors out because response is type Cypress.Response<any>
})

 

Я планирую сделать что-то подобное в будущем для своего проекта при переходе с транспортира на Кипарис. У меня есть тест транспортира, который извлекает данные JSON из файла Github и сохраняет их в переменной с помощью обещания. Я хочу выполнить ту же задачу с Кипарисом.

Комментарии:

1. Ты, наверное, хочешь response.body или что-то в этом роде. response.body Возможно, вы уже проанализировали JSON.

Ответ №1:

Я думаю , что вы должны использовать response.body , и он должен был быть сериализован.

Тело запроса, которое будет отправлено в запросе. Cypress устанавливает заголовок запроса «Прием» и сериализует тело ответа с помощью опции кодирования. (https://docs.cypress.io/api/commands/request#Usage)

Комментарии:

1. Спасибо, мне потребовалось некоторое время, чтобы понять, где я должен использовать response.body, но я, наконец, смог сохранить данные JSON в переменной.