Как мне отсортировать json, используя поле метки времени в файле json в Postman?

#json #postman #postman-testcase

#json #postman #postman-testcase

Вопрос:

Я новичок в Postman, у меня есть вызов API, который выдает мне результат в виде json. В «тесте» я получаю JSON с помощью "bodyData = JSON.parse(responseBody);"

В файле JSON есть пример полей временных меток "executedDate": "2020-11-26T09:45:27.000Z" . Мне понадобится помощь в сортировке файла JSON в порядке убывания на основе executedDate поля.

  {
   "dataflowJobs": [
    {
        "createdDate": "2020-11-26T09:45:03.000Z",
        "duration": 48,
        "executedDate": "2020-11-26T09:45:27.000Z",
        "id": "03C2w000002Urb1EAC",
        "jobType": "user",
        "label": "Dataflow_2",
        "progress": 1.0,
        "startDate": "2020-11-26T09:45:03.000Z",
        "status": "Success",
        "type": "dataflowjob",
        "url": "/services/data/v47.0/wave/dataflowjobs/03C2w000002Urb1EAC"
    },
    {
        "createdDate": "2020-11-26T09:45:01.000Z",
        "duration": 34,
        "executedDate": "2020-11-26T09:45:02.000Z",
        "id": "03C2w000002UracEAC",
        "jobType": "user",
        "label": "Adv_Dataflow_Exercises",
        "progress": 1.0,
        "startDate": "2020-11-26T09:45:01.000Z",
        "status": "Success",
        "type": "dataflowjob",
        "url": "/services/data/v47.0/wave/dataflowjobs/03C2w000002UracEAC"
    },        {
        "createdDate": "2020-11-20T09:45:01.000Z",
        "duration": 58,
        "id": "0eP2w000000MhszEAC",
        "jobType": "recipe",
        "label": "Feb_and_Jan_S2_Modified_Recipe2_recipe",
        "progress": 1.0,
        "startDate": "2020-11-20T09:45:01.000Z",
        "status": "Success",
        "type": "dataflowjob",
        "url": "/services/data/v47.0/wave/dataflowjobs/0eP2w000000MhszEAC"
    }
],
"url": "/services/data/v47.0/wave/dataflowjobs"
}
 

Ответ №1:

 let moment = require('moment')


let jsonData = pm.response.json()

console.log(jsonData.dataflowJobs.sort(function (a, b) { return moment(b.executedDate).diff(moment(a.executedDate), "seconds") }))
 

Это будет сортироваться в соответствии с временем выполнения, если время выполнения отсутствует, оно будет вверху

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

1. Спасибо PDHide за ответ. Сортировка работает, но я вижу отсортированный результат только в консоли. Фактический ответ тела не сортируется. Есть ли способ выполнить сортировку тела ответа? Я пытаюсь выполнить некоторые проверки после сортировки тела ответа.

2. Просто назначьте его переменной, которую вы хотите!

3. jsonData = jsonData.dataflowjobs бла-бла-бла

4. Пожалуйста, примите ответ, нажав на галочку спасибо