Ответ, полученный от Rest API, не повторяется должным образом с использованием цикла $ .foreach. Порядок итерации не является правильным.Как я могу это исправить? - PullRequest
0 голосов
/ 10 октября 2018

Я использую REST API для получения некоторых данных из базы данных.JSON, полученный от API, если имеет тип MAP, т.е. содержит пары ключ-значение.

В моей вкладке сети я вижу ответ как

{
  "items": {
    "1.7.0": [{
      "hostCount": 1
    }],
    "1.8.0": [{
      "hostCount": 8
    }],
    "9.0": [{
      "hostCount": 1
    }],
    "9": [{
      "hostCount": 1
    }],
    "10": [{
      "hostCount": 1
    }],
    "10.0": [{
      "hostCount": 1
    }],
    "11.0": [{
      "hostCount": 1
    }],
    "11": [{
      "hostCount": 1
    }],
    "12": [{
      "hostCount": 1
    }]
  },
  "totalResults": 9,
  "links": null
}

Но когда я повторяю этот ответ в своем коде JavaScript с помощью цикла $ .foreach, последовательность отличается.

self.RecordCollection = oj.Collection.extend({
  fetchSize: (self.selectedPageSize || 20),
  url: self.getQueryURL,
  model: self.reportDataModel,
  parse: function(response) {
    $.each(response.items, function(idx, elems) {
      //Some code goes here to convert key value pair to array
    }
  }
})

Последовательность в пользовательском интерфейсе после этого foreach выглядит примерно так:

{
  "items": {
    "9": [{
      "hostCount": 1
    }],
    "10": [{
      "hostCount": 8
    }],
    "11": [{
      "hostCount": 1
    }],
    "12": [{
      "hostCount": 1
    }],
    "1.7.0": [{
      "hostCount": 1
    }],
    "1.8.0": [{
      "hostCount": 1
    }],
    "9.0": [{
      "hostCount": 1
    }],
    "10.0": [{
      "hostCount": 1
    }],
    "11.0": [{
      "hostCount": 1
    }]
  },
  "totalResults": 9,
  "links": null
}

Я использую среду Oracle JET в пользовательском интерфейсе.Сортировка, отображаемая в пользовательском интерфейсе, в этом случае имеет большое значение.

Пожалуйста, помогите мне понять, в какой момент этот порядок сортировки испорчен.

Отредактировано: Кроме того, если я попытаюсь распечататьОтвет в консоли на пользовательском интерфейсе выглядит хорошо в расширенном представлении (то же самое, что возвращается API).Но консолидированный JSON показывает неправильную последовательность, и эта последовательность имеет приоритет при итерации.

enter image description here

...